![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java多线程开发
远山324
这个作者很懒,什么都没留下…
展开
-
Java多线程开发学习笔记--线程池
线程池使用线程池背景:经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大。思路:提前创建好多个线程,放入线程池,使用时直接获取,使用完放回池中。可以避免频繁创建销毁、实现重复利用。类似于生活中的公共交通工具。好处:提高了响应速度(减少了创建新线程的时间)降低资源消耗(重复利用线程池中的线程,不需要每次都创建)便于线程管理corePoolSize:核心池的大小maximumPoolSize:最大线程数keepAliveTime:线程没有任务时最多保存多长时间后会原创 2021-09-28 17:06:58 · 106 阅读 · 0 评论 -
Java多线程开发学习笔记--Lock锁
Lock(可重入锁)从JDK 5.0开始,Java提供了更强大的线程同步机制——通过显式定义同步锁对向来实现同步。同步锁使用Lock对象充当;java.util.concurrent.locks.Lock;接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程对Lock对象加锁,线程开始访问共享资源之前,应先获得Lock对象。ReentrantLock 类实现了Lock,它拥有与synchronized相同的并发性和内存语义,在实现线程安全的控制中,比较常用的是原创 2021-09-28 12:16:26 · 94 阅读 · 0 评论 -
Java多线程学习笔记--死锁
死锁多个线程各自占用一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形,某一同步块同时拥有”两个以上对象的锁“,就可能会发生死锁。案例:死锁package com.kuang.syn;//死锁:多线程互相抱着对方需要的资源,然后形成死锁public class DeadLock { public static void main(String[] args) { Makeup g1 = new Makeup(原创 2021-09-28 11:49:10 · 79 阅读 · 0 评论 -
Java多线程学习笔记--线程同步
线程同步多个线程操作一个资源并发:多个线程同时操作同一个对象/同一个对象被多个线程同时操作处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象,这时候我们就需要线程同步。线程同步其实就是一种等待机制,多个需要同时访问此对象的线程进入这个对象的**等待池**形成队列,等待前面线程使用完毕,下一个线程再使用。形成条件:队列和锁由于同一进程的多个线程共享同一块存储空间,在带来方便的同时,也带来了访问冲突问题,为了保证数据在方法中被访问时的正确性,在访问时加入锁机制synchroniz原创 2021-09-28 11:47:46 · 91 阅读 · 0 评论 -
Java多线程开发学习笔记--守护(daemon)线程
守护(daemon)线程线程分为用户线程和守护线程虚拟机必须确保用户线程执行完毕虚拟机不用等待守护线程执行完毕如,后台记录操作日志,监控内存,垃圾回收等待…package com.kuang.state;//测试守护线程//上帝守护你public class TestDaemon { public static void main(String[] args) { God god = new God(); You you = new You()原创 2021-09-27 22:19:58 · 69 阅读 · 0 评论 -
Java多线程开发学习笔记--线程优先级
线程优先级Java提供一个线程调度器来监控程序启动后进入就绪状态的所有进程,线程调度器按照优先级决定应该调度哪个线程来执行。线程的优先级用数字表示,范围从1~10Thread.MIN_PRIORITY = 1;Thread.MAX_PRIORITY = 10;Thread.NORM_PRIORITY = 5;用一下方式改变或获取优先级getPriority.setPriority(int xxx);package com.kuang.state;public class原创 2021-09-27 22:07:18 · 85 阅读 · 0 评论 -
Java多线程学习笔记--线程状态
线程状态停止线程不建议使用JDK提供的stop()、destroy()方法;【已废弃】推荐线程自己停止下来建议使用一个标志位进行终止变量,当flag = false,则终止线程运行案例:使用标志位停止线程package com.kuang.state;//测试stop//1.建议线程正常停止--->利用次数,不建议死循环//2.建议使用标志位--->设置一个标志位//3.不要使用stop或者destroy等过时或者JDK不建议使用的方法public class Te原创 2021-09-27 21:50:24 · 55 阅读 · 0 评论 -
Java多线程开发学习笔记--实现Callable接口
实现Callable接口package com.kuang.demo02;import org.apache.commons.io.FileUtils;import java.io.File;import java.io.IOException;import java.net.URL;import java.util.concurrent.*;//线程创建方式三: 实现Callable接口/** callable的好处* 1、可以定义返回值* 2、可以抛出异常* */publ原创 2021-09-27 20:39:29 · 63 阅读 · 0 评论 -
Java多线程学习笔记--多线程概述以及创建多线程
Java多线程概述在操作系统中运行的程序就是进程。一个进程可以有多个线程,如视频中同时听声音,看图像,看弹幕等等。程序、线程、进程、多线程程序是指令和数据的有序集合,其本身没有任何运行的含义,是静态概念。进程则是执行程序的一次执行过程,是一个动态的概念,是系统资源分配的单位。一个进程包含多个线程,一个线程至少有一个线程,不然没有存在的意义。线程是cpu调度和执行的单位。很多多线程是模拟出来的,真正的多线程是指有多个cpu,即多核,如服务器。如果是模拟出来的多线程,即在一个cpu的情况下,在同一原创 2021-09-27 16:19:00 · 96 阅读 · 0 评论