马府强
2 years ago
committed by
Gitee
1 changed files with 0 additions and 54 deletions
@ -1,54 +0,0 @@ |
|||
package com.itheima.test; |
|||
|
|||
/* |
|||
* 需求: 线程隔离 |
|||
* 在多线程并发的场景下, 每个线程中的变量都是相互独立 |
|||
* 线程A : 设置(变量1 ) 获取(变量1) |
|||
* 线程B : 设置(变量2 ) 获取(变量2) |
|||
* |
|||
* ThreadLocal : |
|||
* 1. set() : 将变量绑定到当前线程中 |
|||
* 2. get() : 获取当前线程绑定的变量 |
|||
* */ |
|||
public class MyDemo01 { |
|||
|
|||
ThreadLocal<String> tl = new ThreadLocal<>(); |
|||
|
|||
//变量
|
|||
private String content; |
|||
|
|||
private String getContent() { |
|||
// return content;
|
|||
String s = tl.get(); |
|||
return s; |
|||
} |
|||
|
|||
private void setContent(String content) { |
|||
// this.content = content;
|
|||
//变量content绑定到当前线程
|
|||
tl.set(content); |
|||
} |
|||
|
|||
public static void main(String[] args) { |
|||
MyDemo01 demo = new MyDemo01(); |
|||
|
|||
for (int i = 0; i < 5; i++) { |
|||
|
|||
Thread thread = new Thread(new Runnable() { |
|||
@Override |
|||
public void run() { |
|||
/* |
|||
每个线程: 存一个变量 , 过一会 取出这个变量 |
|||
*/ |
|||
demo.setContent(Thread.currentThread().getName() + "的数据"); |
|||
System.out.println("-----------------------"); |
|||
System.out.println(Thread.currentThread().getName() + "--->" + demo.getContent()); |
|||
} |
|||
}); |
|||
|
|||
thread.setName("线程" + i); //线程0~4
|
|||
thread.start(); |
|||
} |
|||
} |
|||
|
|||
} |
Loading…
Reference in new issue