![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 73
brave_zhao
i am a coder! just it!
展开
-
定时任务类型线程池工具的用法小例子(java 定时任务线程池)(定时调度线程池)( 转载spring cloud 源码片段)
java 定时任务线程池原创 2022-09-22 09:01:50 · 132 阅读 · 0 评论 -
jconsole线程面板中的阻塞总数和等待总数(转)
jconsole线程面板中的阻塞总数和等待总数(转)转载 2022-07-12 16:22:03 · 2185 阅读 · 0 评论 -
java多线程学习之 类级别同步锁
j/** * @author zhaoyong * @Date 2022/4/24 * @Description */public class Thread1 implements Runnable { public void print(Object lockSingal) { synchronized (lockSingal) { int i = 0; while (true) {原创 2022-05-25 09:16:14 · 105 阅读 · 0 评论 -
java多线程学习之线程池赏析
1了解概念:什么是线程池Thread pool线程池,顾名思义就是由若干个线程“Thread类型对象”所组成的一个"池",但是切勿只认为Thread pool(线程池)内部就仅仅只有Thread类型对象(线程),这样理解是不够准确的。因为Thread pool内还有"任务队列",任务队列:Queue<Runnable> tasksWorkQueue它是一个可以存放Runnable类型实例化对象的一个Queue(队列性集合)(注意:Queue这种数据结构具有"先进先出FIFO"的特性,即所谓.原创 2022-05-23 08:44:28 · 245 阅读 · 0 评论 -
java多线程学习之Runnable和Thread的区别于联系
任务:是Runnable类型对象线程:是Thread类型对象切记任务就是Runnable类型实例化对象,而Thread类型实例化对象才是计算机中线程的概念的化身!进程:程序的一次动态执行!线程:一个进程可以有若干个线程组成!,一个线程可以独立地和其所在同进程中的其它线程竞争系统资源(CPU时间或者内存资源等)已获得运行,在java中线程就是Thread类型对象,且仅仅就是Thread类型的对象。Thread类型对象自已有个run()成员方法,其方法体内用于书写该线程的“可执行”部分!—.原创 2022-05-20 13:30:00 · 243 阅读 · 0 评论 -
java多线程编程学习之 浅谈Thread与java集合框架对象
在撰写multithreaded(多线程的)程序的时候,使用java 集合对象最重要的问题是如何管理这些数据的同步访问问题,基于java集合对象的数据同步问题可以有两种管理策略:第一种策略:让java集合框架中那些自身已经在设计上具备“数据同步”特性的集合类型对象自行管理其数据的同步访问问题!(让具有同步特性的集合对象自行管理)第二种策略:用程序员自行开发的同步化的程序代码段来管理对java集合对象的访问!(开发人员自己设计同步化的程序来管理与访问java集合对象(数据资源对象))注意:第一种原创 2022-05-19 16:48:56 · 165 阅读 · 0 评论 -
java多线程学习之定时器线程池的使用ScheduledThreadPoolExecutor
public class ScheduledThreadPoolExecutor extends ThreadPoolExecutor { public ScheduledThreadPoolExecutor(int corePoolSize); public ScheduledThreadPoolExecutor(int corePoolSize, ThreadFactory threadFactory); pub...原创 2022-05-18 08:23:26 · 586 阅读 · 0 评论 -
java多线程学习之TimerTask是什么
首先你要知道 TimerTask类实现自Runnable接口即 TimerTask implements Runnable.这就告诉我们了TimerTask类本质上来说它是对Runnable接口的一个实现类.即一个TimerTask类型对象本质上就是一个Runnable类型对象的一个多态形式.TimerTask类是java语言专门为了配合java.util.Timer这个工具类的工作而设计的.换句话说TimerTask类就是专门为了java.util.Timer而设计的.二者必须配合使用,且它们俩是固定原创 2022-05-17 08:39:31 · 432 阅读 · 0 评论 -
java多线程学习之和Thread和IO
方案一:使用多个thread在执行大量I/O的java程序中是非常重要的。在最简单的情况下,I/O特别是java网络方面的socket的I/O都可能在任何时间点被阻塞住(block住使得后续指令无法被进行),如果用每一个独立的thread去处理自己的I/O在一定程度上,会隔离多个互不相干的I/O操作由于存在阻塞特性(BLOCKING)而相互影响。这意味着你用单一的独立的thread来负责处理单一的你感兴趣的独立的可阻塞的I/O操作。(可阻塞的I/O又叫做“传统的I/O”)________________原创 2022-05-12 08:57:13 · 242 阅读 · 0 评论 -
java多线程学习之6Timer类的作用(定时器类的作用)
java.util.Timer你就把它想像成是一种特殊类型的Thread类的子类。即java.util.Timer extends Thread(在逻辑意义上,而并非在物理实现上)正解为:与每个 Timer类型 对象相对应的是单个后台线程thread,这个单个后台thread用于顺序地执行所有计时器任务(TimerTask类型的Runnable类型对象)(即嫁接到该Timer类型对象的所有TimerTask实例任务)。计时器任务(TimerTask类型实例的run()方法的方法体内代码指令们)应该迅速原创 2022-05-11 14:40:41 · 745 阅读 · 0 评论 -
java多线程学习之14invokeLater()方法与invokeAndWait()的使用
invokeLater();与invokeAndWait();的使用:(这两个方法可以在"非"事件分派线程中被调用!)这两个方法都属于SwingUtilities类是两个静态成员方法(类方法!)——————————————————————————————————————————————————————————————————————————————swing技术下有个工具类:SwingUtilities这个类很奇特:首先SwingUtilities.isEventDispatchThread()当其返原创 2022-05-11 13:22:20 · 1088 阅读 · 0 评论 -
java多线程学习之10 Thread在java Swing技术中的使用
预言:java的swing技术下的各种gui组件对象都不是线程安全的即如果存在多个线程并发访问同一个swing技术下的gui组件对象,可能会遭到程序运行异常,gui界面挂起等其他以外的错误结果!(换句话说:swing技术下同一个gui组件对象不支持多线程对它的并发访问!)(切记切记这是使用原则!),要正确设计有关使用swing技术的gui交互程序!一个重要且必须遵守的原则技巧是:"利用一个特定独立的thread(线程)来独自的访问Swing的各种组件对象!"(必须使用一个特例独行的线程来独自负责对Swi.原创 2022-05-11 10:48:45 · 247 阅读 · 0 评论 -
java多线程学习之13同步锁分配的公平性
ReentrantLock类有个构造方法:public ReentrantLock(boolean fair);当这个fair变量取值为true时就是让该Lock类型(注意Lock是个接口类型,ReentrantLock类实现了该接口)对象的锁效应以一种公平的形式在各个竞抢该锁(Lock)的线程(thread)之间分发,"公平"的意义就体现在lock(锁)是以先排队等待的先被服务(授予到)的基本的队列中排队的理念来授予锁的!(将临界资源访问锁(数据同步访问锁)发配给抢到该锁的线程!)_________原创 2022-05-10 13:15:40 · 192 阅读 · 0 评论 -
java多线程学习之13Condition接口的使用
Condition 接口(条件变量接口):在Java中,条件型对象变量是实现了Condition这个接口的对象,Condition这个接口(interface)是绑定在Lock这个接口(interface)上的,就好像等待(wait)-通知(notify)机制是绑定在同步锁对象机制上一样的!——————————————————————————————————————————————————————————————————————————————利用Lock类型对象获得Condition类型对象的范原创 2022-05-09 08:42:00 · 241 阅读 · 0 评论 -
java多线程之13关于多线程上的join方法的用途
Thread的善后工作一个已经完成run()方法的thread是已经终结的,它不再是活跃的(isAlive()这个method会返回false)然而,thread对象本身可能还会带有其他有意义的作用或信息。只要其他还在运作中的对象持有对已经终结了的thread对象的引用,其他的thread就能够运行已经终结了的thread对象的相应的method来获得某些有意义的操作与信息。如果代表已经终结thread的对象超出其生命周期的scope,则该thread对象就会被garbage collected.在某原创 2022-05-09 08:39:29 · 637 阅读 · 0 评论 -
java多线程之12 关于多线程上的一些没用过的方法(如何获取当前线程)(阻塞方法对线程的影响)
1如何获取当前线程Thread类有一个静态方法 static method叫做 currentThread()方法,它会获得当前运行的进程中正在获得系统资源并在运行其run()方法的那个线程对象的引用.范例代码public class MyThread extends Thread{public void run(){if(Thread.currentThread()!=this){throw new IllegalStateException("run method called b原创 2022-05-09 08:34:44 · 544 阅读 · 0 评论 -
java多线程学习之 11 atomic类型变量(极简同步技巧)
硬件知识:寄存器:CPU中的临时存储器主存储器:就是内存_____________________________________________________________________________thread之间绝不会共享保存在寄存器中的数据,使用volatile关键字能够确保用该关键字声明的变量不会保持在寄存器中!即用volatile声明的变量会被完整完全的保存在主存储器中(内存中)。_________________________________________________转载 2022-05-06 16:12:01 · 705 阅读 · 0 评论 -
java多线程学习之 有关线程的生命周期
thread在被构造后就会存在,但是在那个时间点还没有任何运行的程序代码。此时thread是在等待的阶段。在这等待的阶段,其他thread可以与已经存在的thread对象交互。等待中的thread有数种属性可以设定:它的priority,名称,daemon状态等,但其实每个属性只是以调用等待中thread的method 来设定。因此,即使thread是在等待,它的状态还是可以被其他thread改变。当你已经准备好要用 thread运行程序代码时,可以调用它的start()方法,这个method会执行一原创 2022-05-06 09:17:16 · 488 阅读 · 0 评论 -
java多线程学习笔记之8 什么是死锁,如何避免死锁发生
Simplistically, deadlock occurs when two or more threads are waiting for two or more locks to be freed and the circumstances in the program are such that the locks are never freed. Interestingly, it is possible to deadlock even if no synchronization locks原创 2022-04-29 10:36:48 · 1031 阅读 · 0 评论 -
java多线程之7嵌套锁的概念
以上内容均来自于本书和我的自己理解的总结Java Threads, 3rd Edition [Book] (oreilly.com) Nested locks are also supported by the ReentrantLock class—the class that implements the Lock interface that we have been using so far. If a lock request is made by the thread tha.转载 2022-04-29 10:08:16 · 665 阅读 · 0 评论 -
java多线程读书笔记6 多线程并发同步的使用(转载)
选择一种锁机制If we compare our first implementation of the ScoreLabel class (using synchronized methods) to our second (using an explicit lock), it's easy to conclude that using the explicit lock is not as easy as using the synchronized keyword. With the keywo转载 2022-04-25 08:49:54 · 279 阅读 · 0 评论 -
java多线程读书笔记5 volatile关键字(转载)
Java's memory model is a bit more complex. Threads are allowed to hold the values of variables in local memory (e.g., in a machine register). In that case, when one thread changes the value of the variable, another thread may not see the changed variab...转载 2022-04-21 10:19:10 · 784 阅读 · 0 评论 -
java多线程读书笔记4 synchronized关键字
synchronized The Java specification provides certain mechanisms that deal specifically with this problem. The Java language provides the synchronized keyword; in comparison with other threading systems, this keyword allows the programmer access t...转载 2022-04-19 15:00:38 · 131 阅读 · 0 评论 -
java多线程读书笔记3 如何检测当前线程
以上内容均来自于本书和我的自己理解的总结Java Threads, 3rd Edition [Book] (oreilly.com)Sometimes, you need to find out what the current thread is. You can retrieve a reference to the current thread by calling the currentThread() method (a static method of the Thread..转载 2022-04-18 14:29:42 · 378 阅读 · 0 评论 -
java多线程读书笔记2 Thread的各种简单属性和生命周期(浅谈)
以上内容均来自于本书和我的自己理解的总结Java Threads, 3rd Edition [Book] (oreilly.com)Thread name The name of a thread is part of the information shown when a thread object is printed. Otherwise, it has no significance, so give your threads names that make sen.转载 2022-04-08 09:11:42 · 166 阅读 · 0 评论 -
java多线程读书笔记1 多线程中的基本概念词
以上内容均来自于本书和我的自己理解的总结Java Threads, 3rd Edition [Book] (oreilly.com)Atomic variables A set of classes that provide threadsafe operations without synchronization 原子变量提供线程安全操作而无需同步的一组类我的理解:利用这种原子变量起到定义线程安全的变量,而且不用额外编写同步代码Min..原创 2022-04-02 09:36:44 · 532 阅读 · 0 评论 -
同一个Random实例对象不要让多个线程同时访问
转载 2018-08-09 16:11:04 · 2736 阅读 · 0 评论