多线程 一、什么是多线程? 进程:正在执行的程序。 线程:可以理解成进程中独立运行的子任务,一个进程至少有一个线程。 多线程:一个进程中有多个线程。 二、为什么要使用多线程? 为了更好地利用CPU资源。 进程之间不能共享数据,线程可以。 系统创建进程需要为该进程重新分配系统资源,创建线程代价比较小。 ...
分类:
编程语言 时间:
2020-05-30 20:00:12
阅读次数:
59
线程间的通信 线程通信就是线程与线程间进行信息的交换。 这里可以举个例子,两个线程交替的打印0 9这10个数字。 首先分析一下,比如线程一先开始打印,当它打印了数字0后,他应该 等待 线程二打印数字1,线程二打印了之后又要 等待 线程一打印数字2... 那怎么样才能让线程一开始等待呢?这里可以使用O ...
分类:
编程语言 时间:
2020-05-15 18:29:57
阅读次数:
63
python多线程详解 目录 python多线程详解 一、线程介绍 什么是线程 为什么要使用多线程 二、线程实现 threading模块 自定义线程 守护线程 主线程等待子线程结束 多线程共享全局变量 互斥锁 递归锁 信号量(BoundedSemaphore类) 事件(Event类) 三、GIL(G ...
分类:
编程语言 时间:
2020-05-03 00:59:55
阅读次数:
81
一、为什么要使用线程池? a) 减少开销。因为创建和销毁线程需要和底层操作系统交互,每个线程都去做这个操作,会浪费大量的时间,降低系统效率 b) 避免内存溢出。线程池的线程数量不会超过最大值,不使用线程池可能会造成无限制的创建线程 二、为什么不使用Executors来创建线程池 a) Java中有自 ...
分类:
编程语言 时间:
2020-03-11 22:10:41
阅读次数:
497
并发编程之进程与线程 2.1 线程与进程 2.1.1 进程 2.1.2 线程 2.1.3 二者对比 2.2 并行与并发 2.3 应用 2.1 线程与进程 2.1.1 进程 程序指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络 ...
分类:
编程语言 时间:
2020-02-06 12:24:53
阅读次数:
70
一、什么是线程 进程:操作系统中每个独立执行的程序都可称为一个进程。 线程:一个程序中能够同时运行的执行单元。 例:如果将QQ看作一个进程,则其中同时打开的聊天窗口则可看为一个个线程。 注:多线程程序运行时,每个线程之间是独立的,可以并发执行。但并不是同时执行,CPU同一时刻只能执行一个线程。 二、 ...
分类:
编程语言 时间:
2020-01-03 12:21:12
阅读次数:
84
引入 在前一节我们学习了实现Runnable接口创建线程,其中提到只使用一次对象时使用匿名对象,如: new Thread(new xxx().start();//xxx为实现了Runnable的类 Thread就是一个静态代理,使用了这种方法,xxx类无需继承Thread类,就可以通过Thread ...
分类:
编程语言 时间:
2019-12-03 15:33:33
阅读次数:
87
一、死锁问题: 死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 比如,线程一需要第一把所,此时锁处于空闲状态,给了线程一,线程二需要第二把所,第二把锁也处于空闲状态,给了线程二,这样是没问题的。 但是,当线程一需要 ...
分类:
编程语言 时间:
2019-11-28 01:11:22
阅读次数:
114
1. python线程 1.1 全局解释器锁GIL Python代码的执行由Python虚拟机(也叫解释器主循环)来控制。Python在设计之初就考虑到要在主循环中,同时只有一个线程在执行。虽然 Python 解释器中可以“运行”多个线程,但在任意时刻只有一个线程在解释器中运行。对Python虚拟机 ...
分类:
编程语言 时间:
2019-11-17 01:50:23
阅读次数:
82
进程 一个进程对应一个应用程序,在多进程环境下,各进程需要竞争CPU时间片来执行自己的指令。使用多进程的作用在于提高CPU的使用率,因为一般来说,CPU的频率是远高于内存读写速度的,多进程可以有效利用CPU的空闲时间。 其次,多进程可以实现多个应用程序同时进行工作的服务。在单核时,在同一点上是只能运 ...
分类:
编程语言 时间:
2019-10-20 00:53:28
阅读次数:
102