多线程
文章平均质量分 51
凯凯凯凯.
这个作者很懒,什么都没留下…
展开
-
Java多线程详解
一、实现多线程1.1 进程进程:是正在运行的程序是系统进行资源分配和调用的独立分配每一个进程都有他自己的内存空间和系统资源1.2 线程线程:是进程中的单个顺序控制流,是一条执行路径单线程:一个进程如果只有一条执行路径,则称为单线程程序多线程:一个进程如果有多条执行路径,则称为多线程程序1.3 多线程的实现方式方式一:继承Thread类定义一个类MyThread继承Thread类在MyThread类中重写run()方法创建MyThread类对象启动线程两个小问题:转载 2021-08-03 19:22:46 · 144 阅读 · 0 评论 -
java多线程--线程池
使用线程池背景:经常 创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大。思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。可以避免频繁创建销毁、实现重复利用。类似生活中的交通工具。好处:提高响应速度(减少了创建线程的时间)降低资源消耗(重复利用线程池中的线程,不需要每次都创建)便于线程管理corePoolSize:核心池的大小maximumPoolSize:最大线程数keepAliveTime:线程没有任务时最多保持多长时间后会终止转载 2021-06-02 14:16:23 · 126 阅读 · 0 评论 -
多线程的创建方法和线程池的使用
多线程讲解Process与Thread说起进程,就不得不说一下程序。程序是指令和数据的有序集合,其本身没有任何运行含义,是一个静态的概念。而进程则是执行程序的一次执行过程,他是一个动态的概念。是系统资源分配的单位。通常在一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程是CPU调度和执行的单位。**注意:**很多线程是模拟出来的,真正的多线程是指由多个cpu,即多核,如服务器。如果是模拟出来的线程,即在一个cpu的情况下,在同一个地点,cpu只能执原创 2021-04-17 13:43:25 · 123 阅读 · 0 评论 -
生产者消费者模型
生产者消费者模型一、管程法//测试:生产者消费者模型-->利用缓冲区解决:管程法//生产者,消费者,产品,缓冲区public class TestPC { public static void main(String[] args) { SynContainer container = new SynContainer(); new Productor(container).start(); new Consumer(container)转载 2021-06-02 10:41:55 · 77 阅读 · 0 评论 -
java中锁的用法
死锁多个线程各自占有一些公共资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等对方释放资源,都停止执行的情形。某一个同步块拥有“两个以上对象的锁”时,就可能发生死锁问题。死锁的避免方法产生死锁的四个必要条件:1、互斥条件:一个人资源每次只能被一个进程使用2、请求与保持条件:一个人进程因请求资源而阻塞时,对以获得的资源保持不放。3、不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺。4、循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。** 以上列原创 2021-06-01 20:47:58 · 1181 阅读 · 0 评论 -
守护(daemon)线程
守护(daemon)线程~线程分为用户线程和守护线程~虚拟机必须确保用户线程执行完毕(main() )~虚拟机不用等待守护线程执行完毕(gc() )练习://测试守护线程//上帝守护你public class TestDaemon { public static void main(String[] args) { God god = new God(); You you = new You(); Thread thread = new原创 2021-06-01 17:01:09 · 123 阅读 · 0 评论 -
观测线程状态
Thtead.State线程状态。线程可以处于一下状态之一: NEW:尚未启动的线程处于此状态。 RUNNABLE:在Java虚拟机中执行的线程处于此状态 BLOCKED:被阻塞等待监视器锁定的线程处于此状态 WAITING:正在等待另一个线程执行特定动作的线程处于此状态 TIMED_WAITING:正在等待另一个线程执行动作达到指定等待时间的线程出于此状态 TERMINATED:已退出的线程处于此状态一个线程可以在给定时间点处于一个状态。这些状态是不反应任何操作系统线程状态的虚原创 2021-05-31 23:38:25 · 64 阅读 · 0 评论