×

python多线程是假的 多线程 线程

为什么有人说 Python 的多线程是鸡肋呢?线程同步的方法都有什么

admin admin 发表于2022-06-10 14:51:52 浏览143 评论0

抢沙发发表评论

为什么有人说 Python 的多线程是鸡肋呢


首先,我并不认同这个观点,我觉得觉得Python 的多线程是鸡肋多余的人,应该还没有完全使用过Python 的多线程功能,并没有发掘它的潜在能力。

  • 什么是Python多线程

多线程指的是在我们操作的时候是可以同步执行多个任务,线程的特点是线程内部可以共享内存和变量,并且相比较而言可以消耗更少的资源。但是,在unix环境下,多进程与多线程之间的资源差距不明显,UNIX调度速度快。多线程的缺点就是线程之间的同步和锁定更麻烦。我们需要知道的是线程属于进程的一部分。-多线程

  • Python多线程的特点

对于多线程来说,目前最为人所诟病的一点就是,它容易导致数据错乱,原因是因为,它在改变变量时共享数据会出现多个线程,并使用相同的资源,从而导致死锁和数据混乱。这也是它的最大的特点,可以在线程之间共享数据。-线程

  • Python多线程的优点

Python多线程最大的优点就是使用方便,很多时候我们并不需要做大量的密集型数据的处理运算,这时候用Python多线程是最方便快捷的,可以大大减少工作量、提高工作效率。

  • 总结

从以上几点我们就可以看出,Python多线程并不鸡肋,只是有时候使用者在不巧当的地方使用,它自然不是那么顺手,我们加深熟悉了解Python多线程的适用范围。


线程同步的方法都有什么


同步的实现方面有两种,分别是synchronized,wait与notify wait():使一个线程处于等待状态,并且释放所持有的对象的lock。
sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。
notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。
Allnotity():唤醒所有处入等待状态的线程。
-多线程

简单的话说清多线程和多进程的区别


一般运行一个程序称为一个进程。

进程可以创建线程,也可以创建进程。

线程是由进程管理的,线程之间、线程和父进程(创建线程的进程)之间可以共享内存变量(需要使用策略的)。

进程之间一般不可以直接共享内存变量,需要使用一些进程间的控制共享内存变量。

如果你使用并行计算,建议使用线程。
-线程