![]() |
1
6
是的,这就是想法——thread2一个接一个地执行块。如果它被阻止并且无法进入第一个,它将在那里等待,直到
您需要将它们拆分为两个不同的可运行程序,并为每个程序使用一个线程。 |
![]() |
2
3
因为在run中,方法语句是按顺序执行的,而不是并行执行的。 因此,线程1或线程2中的任何一个都将等待s1的锁被释放。 |
![]() |
3
3
这两个块是一个接一个的,这意味着线程2在通过块2之前必须通过块1 |
![]() |
4
3
代码是逐行执行的,执行不会跳到下一个块,线程2等待线程1离开第一个同步块。
对
因此,将它们保存在单独的可运行实例中。而不是一个序列中一个接一个。 |
|
5
1
它只是编译器执行代码,即编译器按照代码的编写方式顺序执行代码。线程2不能跳过第一个代码块。它将首先执行第一个块,然后执行其他块。 |
![]() |
6
0
下面是一个让它们同时运行的例子。请注意,我不仅将每个循环放在一个单独的线程中,而且还将同步的范围缩小到了打印。
|
|
7
0
|
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |
![]() |
user1700890 · 了解交互式代理Python API中的线程 2 年前 |
![]() |
AntonBoarf · 为什么要将实例变量指定给局部变量? 2 年前 |
![]() |
rhymes · 如何让线程操作相同的java列表 2 年前 |