猿问

ThreadLocal和synchronized的区别?

慕田峪9129951
浏览 1151回答 3
3回答

zzZerOrz

ThreadLocal存放的变量是该线程里的局部变量,synchronized操作的是各个线程的共享变量。

千岁不倒翁

比如说一个变量使用ThreadLocal修饰,则在线程中会创建这个变量的副本进行操作.操作不会受另外一个线程影响.synchronized 使用了内部锁, 没次只有一个线程进行操作, 其他线程阻塞. 等待获得锁的线程释放.

慕仔4209126

ThreadLocal 就是把变量分成很多个拷贝,每个线程拥有一个。这里没有所谓的最后的结果,每个线程单独操作自己的变量,和其他的变量没关系。你就理解成都是各干各的,如果说真要用到跟最终结果有关系,还是老老实实用synchronized
随时随地看视频慕课网APP

相关分类

Java
我要回答