定义:
- 在多线程编程,一些敏感的数据不允许被多个线程同时访问,此时就使用同步访问技术,保证数据在任何时刻,最多只有一个线程访问,以保护数据的完整性。
- 线程同步,就是当有一个线程对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作,其他线程才能对该内存地址进行操作。
同步具体方法-Synchronized:
- 同步代码块
synchronized(对象){//得到对象的锁,才能操作同步代码块
//需被同步的代码
} - synchronized还可以放在方法声明中,表示整个方法-为同步方法
public synchronized void m(String name){
//需被同步的代码
}
作业1要求:
- 在main方法中启动两个线程
- 第一个线程循环随机打印100以内的整数
- 第二个进程从键盘读取了”Q“命令
package com.yuanhuajun.Homework;
import java.util.Scanner;
/**
* @author Yhj
* @date 2022/4/29 8:44
* @project chapter17
*/
public class Homework01 {
public static void main(String[] args) {
T1 t1 = new T1();
//这是将t1对象传到t2中,用以在t2进程中控制t1;如果用类变量来控制,不需要这样。
T2 t2 = new T2(t1);
Thread thread = new Thread(t2);
//启动两个进程
t1.start();
thread.start();
}
}
class T1 extends Thread {
static Boolean flag = true;
public static Boolean