小组Java
  • 关于threadLocal 多线程疑问请路过大神解答一下。

    02/21 夏日 5 评论

运行以上代码,在控制台上输出以下的结果:

1 收藏


直接登录
最新评论
  • higher2017   02/23

    ThreadLocal是用来表示线程局部变量的,也就是说你创建的3个TestClient线程实例在start之后,每个线程都单独有一个seqNum所以你这样写会创造出300张票,达不到多线程共享同一资源的目的。

  •   02/23

    是的咯,你不是已经试出来了嘛

  • 张丽军_   03/28

    线程1卖0-30,线程2 31-60 线程3 61-100 就不会重复了啊,ThreadLocal 不是解决 共享资源竞争的

  • 行歌   03/29

    ThreadLocal并不是解决并发问题,并发意味竞争,没有竞争就不叫并发,他只是说在某种特定的情况下(数据不用写回到内存),我们可以用这种方式来避免阻塞,提高效率。举个例子:一个苹果放在一个盒子里,在一个面一个洞,加锁就是说,四个小朋友要来看了,一个小朋友看其他三个小朋友要等着排队。ThreadLocals说,既然是看又不吃,那我在四面开孔,四个小朋友都能看,不用排队。你这里就是说看完还要吃,不好意思,一个苹果四个人吃了四次。

  • Static   06/27

    start是开启新线程,每start都会开启一个新线程,run是指运行当前线程