-----【Java多线程】
文章平均质量分 61
青苔小榭
可怕的不是比你强的人,而是比你强的人比你更努力。
展开
-
【操作系统】用户态和内核态
文章目录1.百度百科:2.个人理解:3. CPU保护模式1.百度百科:用户态(user mode)在计算机结构指两项类似的概念。在CPU的设计中,用户态指非特权状态。在此状态下,执行的代码被硬件限定,不能进行某些操作,比如写入其他进程的存储空间,以防止给操作系统带来安全隐患。在操作系统的设计中,用户态也类似,指非特权的执行状态。内核禁止此状态下的代码进行潜在危险的操作,比如写入系统配置文件、杀掉其他用户的进程、重启系统等。内核模式操作的一种高特权模式,其中的程序代码能直接访问所有内存(包括所有的原创 2022-03-07 06:42:28 · 677 阅读 · 1 评论 -
【线程与线程池】-线程池-execute源码
文章目录1.看代码2.运行结果3.结果分析4.execute源码流程图1.看代码public class ThreadPoolDemo { public static void main(String[] args){ Long start = System.currentTimeMillis(); ThreadPoolExecutor threadPoolExecutor=new ThreadPoolExecutor(10,20,原创 2022-02-17 07:18:24 · 634 阅读 · 0 评论 -
【线程与线程池】-Java自带线程池以及核心参数
文章目录一、Java自带线程池:二、看个例子三、分析1. newCachedThreadPool 在底层实现源码:1.11.22.newFixedThreadPool 和 newSingleThreadPool2.1 newFixedThreadPool:2.2 newSingleThreadPool:四、总结一、Java自带线程池:1.newCachedThreadPool2.newFixedThreadPool3.newSingleThreadExecutor二、看个例子public cl原创 2022-02-16 07:11:33 · 1004 阅读 · 0 评论 -
【线程与线程池】-线程创建的越多,执行效率越高吗?
文章目录1. 提问:线程创建的越多,执行效率越高吗?2.举例:例1:例2:解答:原因:3.总结1. 提问:线程创建的越多,执行效率越高吗?2.举例:例1: public static void main(String[] args) throws InterruptedException { Long start = System.currentTimeMillis(); final Random random= new Random(); final原创 2022-02-15 06:34:32 · 991 阅读 · 0 评论 -
【Java多线程】单例模式与多线程
单例模式大家都不陌生,即让一个类只有一个实例。 单例模式分为懒汉式和饿汉式。 懒汉式☞方法调用时再实例化对象,什么时候用什么时候实例化,比较懒。 饿汉式☞方法调用前对象就已经创建好了,比较有捉急。 本文着重描述懒汉式与多线程的内容。1.饿汉式public class SingletonHungary { private static SingletonHungary in...原创 2018-05-28 16:44:08 · 3864 阅读 · 5 评论 -
【Java多线程】ThreadLocal
Synchronized是为了让多线程进行数据共享,而ThreadLocal为了让多线程进行数据隔离。 ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 个人理解:同一个变量,每个线程都复制一份放到自己家里,当需要对这个变量进行操作的时候就操作自己家的变量。每个线程都操作自己家的,所以互不影响。public class ConnThrea...原创 2018-05-28 13:14:50 · 481 阅读 · 2 评论 -
【Java多线程】volatile关键字
volatile作用:实现多线程之间变量共享,可以强制线程从主内存中读取数据1.看代码:public class RunThread extends Thread{ private boolean isRunning=true; public void setRunning(boolean isRunning){ this.isRunning=isRun...原创 2018-05-28 10:58:11 · 475 阅读 · 25 评论 -
【Java多线程】synchronized-锁重入
1.什么是锁重入?在使用synchronized时,当一个线程得到一个对象锁后,再次请求此对象锁时是可以再次得到该对象的锁的。这也证明在一个synchronizes方法/块的内部调用本类的其他synchronized方法/块时,也是 永远可以得到锁的。public class SyncDubbo1 { public synchronized void method1() { ...原创 2018-06-03 17:55:22 · 1543 阅读 · 0 评论 -
【Java多线程】queue
队列,从一端进从另一端出 我们用put和take方法可以模拟 put:像队列中放元素,把Object加到BlockingQueue里,如果BlockingQueue没有空间,则调用此方法的线程被阻断 take:从队列中取元素,取走BlockingQueue里排在首位的对象,如果BlockingQueue为空,阻断进入等待状态,直到BlockingQueue 当队列已经满了,put方法需要等...原创 2018-05-22 08:53:07 · 558 阅读 · 0 评论 -
【Java多线程】synchronized(一)
1.什么是synchronized? synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程(例如线程A),运行到这个方法时,都要检查有没有其它线程B(或者C、 D等)正在用这个方法(或者该类的其他同步方法),有的话要等正在使用synchronized方法的线程B(或者C 、D)运行完这个方法后再运行此线程A,没有的话,锁定调用者,然后直接运行。它包括两种用法:synch...原创 2018-04-23 16:57:56 · 1069 阅读 · 1 评论