亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    Python中的多線程解析

    什么是線程:

    線程是操作系統(tǒng)能夠進行運算調(diào)度的最小單位(程序執(zhí)行流的最小單元)。它被包含在進程之中,是進程中的實際運作單位。一個進程中可以并發(fā)多個線程,每條線程并行執(zhí)行不同的任務(wù)。(線程是進程中的一個實體,是被系統(tǒng)獨立調(diào)度和分派的基本單元)

    線程和進程的區(qū)別:

    (1)線程共享內(nèi)存空間;進程的內(nèi)存是獨立的

    (2)同一個進程的線程之間可以直接交流;兩個進程想通信,必須通過一個中間代理來實現(xiàn)

    (3)創(chuàng)建新線程很簡單; 創(chuàng)建新進程需要對其父進程進行一次克隆

    (4)一個線程可以控制和操作同一進程里的其他線程;但是進程只能操作子進程

    (5)改變主線程(如優(yōu)先權(quán)),可能會影響其它線程;改變父進程,不影響子進程

    現(xiàn)在pc都是多核的,使用多線程能充分利用 CPU 來提供程序的執(zhí)行效率
    線程:
    線程是一個基本的 CPU 執(zhí)行單元,它必須依托于進程存活
    進程:
    進程是指一個程序在給定數(shù)據(jù)集合上的一次執(zhí)行過程,是系統(tǒng)進行資源分配和運行調(diào)用的獨立單位。
    可以簡單地理解為操作系統(tǒng)中正在執(zhí)行的程序。也就說,每個應(yīng)用程序都有一個自己的進程

    每一個進程啟動時都會最先產(chǎn)生一個線程,即主線程。然后主線程會再創(chuàng)建其他的子線程

    兩者的區(qū)別
    線程必須在某個進行中執(zhí)行。
    一個進程可包含多個線程,其中有且只有一個主線程。
    多線程共享同個地址空間、打開的文件以及其他資源。
    多進程共享物理內(nèi)存、磁盤、打印機以及其他資源

    示例:程序中有兩個線程,一個主線程,一個是我們創(chuàng)建的子線程

    Python中的多線程解析

    from threading import Thread

    def Foo(arg):
    print arg

    print 'before'
    t1 = Thread(target=Foo,args=(1,))
    t1.start()
    print t1.getName()
    t2 = Thread(target=Foo,args=(2,))
    t2.start()
    print t2.getName()
    print 'after'

    Python中的多線程解析

    #添加t1.setDaemon(True)主線程沒有結(jié)束,那么子線程還會在執(zhí)行,什么時候主線程序執(zhí)行完了,子線程序就跟著主線程一起銷毀了。

    Python中的多線程解析

    from threading import Thread
    import time
    def Foo(arg):
    for item in range(10):
    print item
    time.sleep(1)
    print 'before'
    t1 = Thread(target=Foo,args=(1,))
    t1.setDaemon(True)
    t1.start()
    print 'after'

    time.sleep(5)

    Python中的多線程解析

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號