学习要点
- 多线程数据安全
- 同步线程的方法
class MyThread implements Runnable{//MyThread 实现Runnable接口 int i = 100; public void run(){ //复写run方法 while(true){ synchronized(this){ //线程同步代码 //Thread.currentThread()获取当前这段代码正在哪个线程运行 System.out.println(Thread.currentThread().getName() + i); i--; Thread.yield();//让出CPU 重新竞争CPU使用权 if(i<0){ break; } } } } }
interface Test{ public static void main(String args[]){ //生成一个MyThread对象 MyThread myThread = new MyThread(); //生成两个Thread对象,共用同一个线程体 Thread t1 = new Thread(myThread); Thread t2 = new Thread(myThread); //每个线程都有名字,可以通过Thread对象的SetName方法设置名字,也可以用getName获取线程名字 t1.setName("线程a"); t2.setName("线程b"); t1.start(); t2.start(); } }
- 深入synchronized关键字
一旦线程获得同步锁,那么这个对象所有其它同步代码 都是需要等待同步锁被释放后才能执行。
时间: 2025-01-06 06:00:59