关于多线程中线程的执行顺序

来源:8-3 实现线程安全的队列Queue

宝慕林0551093

2019-12-15

我的想法应该是线程之间执行顺序是任意的,穿插执行。

但根据main方法执行出来的结果,我发现两个线程(加入,移除)是有规律得执行的,比如当两个线程的timeThread相等时,都为先一次加入再一次移除,这是为什么?

此外我也遇到过加入直到满为止,移除直到空为止的情况,也不知道是什么原因。

写回答

1回答

咚咚呛

2019-12-15

你看的例子是Python的例子吗?严格来说这是Python语言的一个特点,Python因为有GIL锁的存在,所以才会导致这个问题,如果换成Java、C++等语言,就不会,这个我在这个章节上有过说明,暂且忽略GIL锁的存在,而是去关注这个多线程队列的模型,因为这个模型是普适的。

0
0

(新版)计算机基础,计算机组成原理+操作系统+网络

编程之前先学这门课,系统补足计算机基础知识,夯实编程地基

7739 学习 · 1580 问题

查看课程