Java---进程
一、线程的基本概念
1、进程
概念:应用程序运行的时候进入到内存中,程序在内存中占用的内存空间(进程)
2、线程
线程:在内存和CPU之间,建立一条连接通路,CPU可以到内存中取出数据进行计算,这个链接的通路,就是线程
一个内存资源:一个独立的进程,进程中可以开启多个线程
并发:同一个时刻多个线程同时操作了同一个数据
并行:同一个时刻多个线程同时执行不同的程序
三级目录
二、Java实现线程的程序
1、java.lang.Thread类
2、Thread类的方法
public class TheadName extends Thread{
public void run(){
}
}
public class getNameTest {
public static void main(String[] args) {
TheadName theadName = new TheadName();
System.out.println(theadName.getName());
}
}
Thread thread = Thread.currentThread();
System.out.println(thread.getName());
3、java.lang.Runnable接口
实现线程程序的步骤
三、线程安全
1、线程安全
线程安全:多线程操作一个资源,有可能出现安全问题
出现的原因:一个线程还没有结束,另一个线程就开始操作了
解决办法:
2、同步代码块
同步代码块可以解决线程安全问题:格式:synchronized ()关键字
synchronized (任意对象){
//线程操作的共享资源
}
任意对象:在同步中这个对象称为对象锁,简称锁(对象监视器)
同步代码块执行原理:
3、同步方法
四、JDK新特性Lock锁
JDK新特性:java.concurrent.locks包,定义了接口Lock
Lock接口代替了synchronized,可以更加灵活
Lock接口的方法
Lock的实现类ReentrantLock
线程通信的方法wait(),notify()