Python辣鸡,Python多线程不能并行?

文章目录

      • 1. Python多线程的缺陷
        • 1.1 Java单线程和多线程执行倒计时函数
        • 1.2 Python单线程和多线程执行倒计时函数
      • 2. GIL
        • 2.1 什么是GIL
        • 2.2 Python为什么不舍弃GIL
      • 3. Python的多线程这么辣鸡,那还用不用?
        • 3.1 多线程
        • 3.2 多进程
        • 3.3 协程
        • 3.4 多进程 VS 多线程 VS 协程

1. Python多线程的缺陷

比如我现在要执行2个倒计时函数,
我可以选择用一个线程顺序执行这2个函数,按顺序倒计时2次;
也可以用两个线程并行这2个函数,也就是同时倒计时。

我的电脑有4个CPU核心,是可以并行4个线程的,因此我并行上述2个线程完全没问题。

也就是说,我用2个线程执行2个倒计时用的时间应该是一个线程执行2次倒计时时间的一半。

1.1 Java单线程和多线程执行倒计时函数

在Java中确实是如此,如下。

Java单进程执行:
如下代码,有一个倒计时函数countDown(),我在主函数里顺序执行两次倒计时500000000下:

public class Main {
   
    private static void countDown(long count) {
   
        while (count > 0) {
   
            count--;
        }
        System.out.println("倒计时完成");
    }
    
    public static void main(String[] args) throws InterruptedException {
   
        long startTime = System.currentTimeMillis();
        countDown(500000000);
        countDown(500000000);
        long endTime = System.currentTimeMillis();
        System.out.println("耗时间为:" + (endTime - startTime)

你可能感兴趣的:(辣鸡Python,python,多线程,java,并发编程)