随笔分类 -  3、java_多线程

多线程
摘要:线程状态5状态 新建 new 就绪 start() 运行 cpu调度 阻塞 blocked 停止 stop package com.testthread1; /** * 1、建议线程正常停止,利用次数,不建议死循环; * 2、建议设置标志位, * 3、不用使用stop或destroy,或jdk不建议 阅读全文
posted @ 2022-07-24 17:05 颓废且努力奋斗的人 阅读(30) 评论(0) 推荐(0)
摘要:package com.syn; public class TestPc2 { public static void main(String[] args) { Tv tv = new Tv(); new Player(tv).start(); new Watcher(tv).start(); } 阅读全文
posted @ 2022-07-24 17:04 颓废且努力奋斗的人 阅读(20) 评论(0) 推荐(0)
摘要:1、lock是显示锁,手动开启和关闭,synchronized是隐式锁,出了作用域自动释放。 2、lock只有代码块锁,synchronized有代码锁和方法锁 3、使用lock锁,jvm将花费较少的时间来调度线程,性能更好,并且具有更好的扩展性,提供更多的子类。 4、优先使用顺序:lock》同步代 阅读全文
posted @ 2022-07-24 16:45 颓废且努力奋斗的人 阅读(268) 评论(0) 推荐(0)
摘要:线程同步机制 1、同一个进程的多个线程共享同一块存储空间,带来了方便,也有冲突,为了保证数据在方法中被访问的正确性,在访问时加锁机制,synchronized,当一个线程获得对象的排他锁,独占资源,其他线程必须等待使用后释放; 问题: 1、一个线程持有锁,会导致其他的需要此锁的线程挂起; 2、多线程 阅读全文
posted @ 2022-07-24 16:45 颓废且努力奋斗的人 阅读(40) 评论(0) 推荐(0)
摘要:package com.syn; public class TestPc { public static void main(String[] args) { SynContainer container = new SynContainer(); new Productor(container). 阅读全文
posted @ 2022-07-24 16:45 颓废且努力奋斗的人 阅读(32) 评论(0) 推荐(0)
摘要:13、守护线程 daemon 1、线程分为守护线程,用户线程 2、虚拟机必须确保用户线程执行完成 3、虚拟机不用等守护线程执行完成 package com.testthread1; import org.w3c.dom.ls.LSOutput; import java.security.spec.R 阅读全文
posted @ 2022-07-17 16:21 颓废且努力奋斗的人 阅读(33) 评论(0) 推荐(0)
摘要:12、线程优先级 priority package com.testthread1; /** * 1、currentThread()方法返回正在被执行的线程的信息 * */ public class TestPrioriy { public static void main(String[] arg 阅读全文
posted @ 2022-07-17 15:59 颓废且努力奋斗的人 阅读(29) 评论(0) 推荐(0)
摘要:11、线程状态 package com.testthread1; public class TestThread { public static void main(String[] args) { //线程使用lambda表达式 Thread thread = new Thread(()->{ f 阅读全文
posted @ 2022-07-17 14:46 颓废且努力奋斗的人 阅读(139) 评论(0) 推荐(0)
摘要:10、线程强制执行jion package com.testthread1; public class TestJion implements Runnable{ @Override public void run() { for (int i = 0; i < 100; i++) { System 阅读全文
posted @ 2022-07-17 10:29 颓废且努力奋斗的人 阅读(32) 评论(0) 推荐(0)
摘要:线程礼让: 1、让正在执行的线程为暂停,但不阻塞; 2、让状态转为就绪 3、让cpu重写调度,礼让不一定成功; Thread.currentThread()获取当前线程的引用 package com.testthread1; import org.w3c.dom.ls.LSOutput; publi 阅读全文
posted @ 2022-07-16 17:53 颓废且努力奋斗的人 阅读(29) 评论(0) 推荐(0)
摘要:8、线程休眠 每个对象都有一把锁,sleep不会释放锁; package com.testthread1; public class TestThread3 implements Runnable{ private int ticketNums = 10 ; @Override public voi 阅读全文
posted @ 2022-07-16 16:50 颓废且努力奋斗的人 阅读(28) 评论(0) 推荐(0)
摘要:lamda表达式: 1、避免匿名内部类过多 2、让代码简洁 3、去掉没有意义的代码,保留核心逻辑 函数式接口:只包含一个抽象方法,被成为函数式接口 package com.com.test; import jdk.dynalink.beans.StaticClass; /** * 推导lambda表 阅读全文
posted @ 2022-07-15 21:26 颓废且努力奋斗的人 阅读(30) 评论(0) 推荐(0)
摘要:5、静态代理模式 /** * 1、真实对象和代理对象实现同一个接口; * 2、代理对象,代理真实角色; */public class StaticProxy { public static void main(String[] args) { //真实结婚对象 Person person = new 阅读全文
posted @ 2022-07-13 21:09 颓废且努力奋斗的人 阅读(22) 评论(0) 推荐(0)
摘要:线程不安全 public class TestThread3 implements Runnable{ private int ticketNums = 10 ; @Override public void run() { while (true){ if (ticketNums==0){ brea 阅读全文
posted @ 2022-07-10 20:16 颓废且努力奋斗的人 阅读(9) 评论(0) 推荐(0)
摘要:实现runnable接口 import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.net.URL; public class TestThread2 im 阅读全文
posted @ 2022-07-10 11:16 颓废且努力奋斗的人 阅读(26) 评论(0) 推荐(0)
摘要:程序:指令和数据的有序集合,静态概念; 进程:操作系统分配资源的最小单元,程序的实例,程序执行的动态概念; 线程:CPU调度的最小单元,一个进程中至少有一个线程; main()方法是主线程的入口,用来执行整个程序; 多线程的调度,由调度器完成,调度器与操作系统紧密相关,先后顺序不能人为干预; 对同一 阅读全文
posted @ 2022-07-09 20:21 颓废且努力奋斗的人 阅读(29) 评论(0) 推荐(0)