多线程与多进程

python中一个进程中的多线程是要排队的,就好像一个线程按顺序执行,但是java中多线程是可以并发执行的。

对于任何Python程序,不管有多少的处理器,任何时候都总是只有一个线程在执行。
这点上Python是不同于Java的,对于多核的情况,Java可以同时开启多个线程进行处理

对于计算密集型的,我还是建议不要使用python的多线程而是使用多进程方式,而对于IO密集型的,
还是建议使用多进程方式,因为使用多线程方式出了问题,最后都不知道问题出在了哪里。

Python
但是听闻Python的多线程实际上并不能真正利用多核,所以如果使用多线程实际上还是在一个核上做并发处理。不过,如果使用多进程就可以真正利用多核,因为各进程之间是相互独立的,不共享资源,可以在不同的核上执行不同的进程,达到并行的效果。

import threading
import time

exitFlag = 0

class myThread (threading.Thread):
    def __init__(self, threadID, name, counter):
        threading.Thread.__init__(self)
        self.threadID = threadID
        self.name = name
        self.counter = counter
    def run(self):
        print ("开始线程:" + self.name)
        print_time(self.name, self.counter, 5)
        print ("退出线程:" + self.name)

def print_time(threadName, delay, counter):
    while counter:
        if exitFlag:
            threadName.exit()
        time.sleep(delay)
        print ("%s: %s" % (threadName, time.ctime(time.time())))
        counter -= 1

# 创建新线程
thread1 = myThread(1, "Thread-1", 1)
thread2 = myThread(2, "Thread-2", 2)

# 开启新线程
thread1.start()
thread2.start()
thread1.join()
thread2.join()
print ("退出主线程")

https://blog.csdn.net/Megustas_JJC/article/details/79116365

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容