多线程基础入门

1.线程和进程和程序

程序:多个进程的集合(一个程序至少一个进程)

进程:线程的集合(一个进程至少一个线程)

线程:一个执行路径

2.什么是线程安全问题

   当两个或者多个线程共享一个全局变量对其做写的操作的时候,结果可能出现误差.

3.多线程之间同步

1)同步代码块:

就是被包裹的代码只能有一个线程进入

synchronized(锁){

代码

}

2).同步函数 

在方法上加上synchronized 就是同步函数 

public   synchronized   方法返回类型  方法名字()

{

代码

}

3. lock锁

Lock lock  = new ReentrantLock();

lock.lock();

try{

//可能会出现线程安全的操作

}finally{

//一定在finally中释放锁

//也不能把获取锁在try中进行,因为有可能在获取锁的时候抛出异常

  lock.ublock();

}

 

3.多线程死锁

同步中嵌套同步,导致锁没法释放,产生死锁.

4.多线程三大特性: 

1)原子性:  就是程序的完整性,要么做完这个事情,要么就不做,不能做一半不做。

2)可见性:Java内存模型中的本地内存能否通讯。

3)有序性:程序执行的顺序按照代码的先后顺序执行。

5守护线程和非守护线程:

Java中有两种线程,一种是用户线程,另一种是守护线程。

 用户线程是指用户自定义创建的线程,主线程停止,用户线程不会停止

守护线程当进程不存在或主线程停止,守护线程也会被停止。

6.多线程运行状态  

新建  就绪  阻塞 运行   死亡

 

猜你喜欢

转载自blog.csdn.net/weixin_40951242/article/details/82533919