
多线程
JAVA基础多线程
_淡若清风づ
走过了所有通向失败的路,只剩下一条路,那就是成功的路。
展开
-
JAVA基础 死锁
死锁在做线程开发的时候要避免出现死锁。一、定义线程死锁是指由于两个或者多个线程互相持有对方所需要的资源,导致这些线程处于等待状态,无法前往执行。当线程进入对象的synchronized代码块时,便占有了资源,直到它退出该代码块或者调用wait方法,才释放资源,在此期间,其他线程将不能进入该代码块。当线程互相持有对方所需要的资源时,会互相等待对方释放资源,如果线程都不主动释放所占有的资源,将产生死锁。 换个例子: 所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态原创 2020-12-24 23:22:02 · 126 阅读 · 0 评论 -
线程的优先级、等待线程、守护线程
线程的优先级、等待线程、守护线程我们可以通过 public final void setPriority(int newPriority)来设置线程的优先级,但是优先级并不是绝对的,只是相对来说比其他的线程得到CPU的资源机会多一些。一个线程的优先级设置遵从以下原则:线程创建时,子继承父的优先级。线程创建后,可通过调用setPriority()方法改变优先级。线程的优先级是1-10之间的正整数,线程优先级最高为10,最低为1,默认为5。1- MIN_PRIORITY10-MAX_PRIORI原创 2020-12-24 23:09:55 · 311 阅读 · 0 评论 -
JAVA基础 sleep()休眠
sleep()休眠在做服务器端的程序的时候都需要给一个休眠的时间,在没有synchronized代码块里面会让出CPU的资源。Thread.sleep(long millis)和Thread.sleep(long millis, int nanos)静态方法强制当前正在执行的线程休眠(暂停执行),以“减慢线程”。当线程睡眠时,它睡在某个地方,在苏醒之前不会返回到可运行状态。当睡眠时间到期,则返回到可运行状态。线程睡眠的原因:线程执行太快,或者需要强制进入下一轮,因为Java规范不保证合理的轮换。原创 2020-12-24 22:07:54 · 809 阅读 · 0 评论 -
JAVA基础 线程间的通信
线程间的通信案例:生产者生成水果,如果水果没有被买走那么就不生产,处于等待状态,如果水果被消费者买走这时候消费者就会通知生产者,告诉他我们已经把水果买走了请重新生产。消费者同理,如果水果已经生产出来那么就买走,买走了之后通知生产者水果已经没有了,请生产。注意:1.线程间的通讯共享数据一定要有同步代码块 synchronized2.一定要有wait和notify,而且二者一定是成对出现。3.生产者和消费者的线程实现一定是在white(true)里面第一种方式 继承 Thread创建篮子原创 2020-12-24 21:58:15 · 137 阅读 · 0 评论 -
JAVA基础 多线程
一、多线程:1.概述: 用多线程只有一个目的,那就是更好的利用cpu的资源,提高程序的运行效率,因为所有的多线程代码都可以用单线程来实现。一、多线程:多线程:指的是这个程序(一个进程)运行时产生了不止一个线程并行与并发:并行:多个cpu实例或者多台机器同时执行一段处理逻辑,是真正的同时。并发:通过cpu调度算法,让用户看上去同时执行,实际上从cpu操作层面不是真正的同时。二、线程安全:经常用来描绘一段代码。指在并发的情况之下,该代码经过多线程使用,线程的调度顺序不影响任何结果。这个时原创 2020-12-24 21:46:36 · 126 阅读 · 0 评论