from threading importthread
from multiprocessing import
process
import
time
deffoo():
print(123)
time.sleep(1)
print("
end123")
defbar():
print(456)
time.sleep(3)
print("
end456")
if__name__ == '
__main__':
t1=thread(target=foo)
t2=thread(target=bar)
t1.daemon=true
t1.start()
t2.start()
print("
main-------
")
123456main-------end123
end456
1.執行緒與程序執行完畢的區別:
1.主程序執行完畢指的是主程序**執行完畢
2.主線程執行完畢指的是所在的程序內的所有非守護執行緒執行完畢後,主線程才算執行完畢
強調:執行完畢,並非是終止
2.守護程序:主程序**執行完畢,守護程序也就結束 (守護的是主程序)
主程序要等非守護程序都執行完畢後再**子程序的資源(否則會產生殭屍程序)才結束
主程序等子程序是因為主程序要給子程序收屍(代用wait方法向作業系統發起**資源訊號(pid號,狀態資訊))
守護執行緒:非守護執行緒**執行完畢,守護執行緒也就結束 (守護的是非守護執行緒)
主線程在其他非守護執行緒執行完畢後才算結束(守護執行緒在此時就會被**)
強調:主線程也是非守護執行緒(程序包含了執行緒)
總結:主線程的結束意味著程序結束,程序整體的資源都會被**,而程序必須保證非守護執行緒都執行完畢後才能結束
守護程序:主程序**執行完畢,守護程序也就結束
守護執行緒:非守護執行緒執行完畢,守護執行緒結束
from threading importthread, current_thread
import
time
#def task():
#print('%s is runing '%current_thread().name)
#time.sleep(2)
#print('%s is done'%current_thread().name)##
if __name__ == '__main__':
#t=thread(target=task,name='守護程序')
#t.daemon=true
#t.start()
#print('主')
deffoo():
print(123)
time.sleep(5)
print('
end123')
defbar():
print(456)
time.sleep(2)
print('
end456
') #
守護執行緒:非守護執行緒**執行結束後就結束
t1 = thread(target=foo)
t2 = thread(target=bar)
t1.daemon =true
t1.start()
t2.start() #
t1.join() #讓主線程原地等待子執行緒執行完畢後才執行下面**
print('
main----')
#守護執行緒:非守護執行緒**執行結束後就結束
t1 = thread(target=foo)
t2 = thread(target=bar)
t1.daemon =true
t1.start()
t2.start()
#t1.join() #讓主線程原地等待子執行緒執行完畢後才執行下面**
print('
main----
')
集合小例子
解題分析 1.先宣告乙個set集合 2.泛型設為double 3.用math方法來隨機儲存數字 4.集合中的collections方法找最大值和最小值 具體 如下 public static void main string args system.out.println system.out.pr...
(例子)PHP 資料抓取小例子
為了加強php語言的學習,自己沒事寫了個小例子,抓取慕課網的課程列表。就是乙個簡單的小例子,沒用curl等擴充套件只用了原生的php。流程 根據url開啟 轉成字串 正規表示式提取資訊 存入資料庫。而且有乙個缺點就是因為要開啟的頁面太多,導致網路不好的情況下解析的時間太長了,會報錯停止執行。正在向方...
AJAX的小例子
檔案 div.html 檔案test.pl c perl bin perl.exe printenv demo cgi program which just prints its environment print content type text html n n print content t...