Java多线程
WindSearcher
打造自己的梦想,否则就被雇佣打造他人的梦想!
展开
-
单核cpu与多线程体会
1.多线程在单核和多核CPU上的执行效率问题的讨论 多线程在单cpu中其实也是顺序执行的,不过系统可以帮你切换那个执行而已,其实并没有快(反而慢,涉及到切换线程的消耗) 多个cpu的话就可以在两个cpu中同时执行两个线程..............但为什么有时候线程数超过CPU内核数会更快呢?原因是这种程序的单个线程运算量不足以占满CPU一个内核(比如存在大量IO操作,IO比...原创 2020-02-02 20:52:08 · 2164 阅读 · 0 评论 -
Java多线程编程核心技术笔记:第1章 多线程技能
1、进程和线程的区别: (1)进程可以理解为一个程序的执行。如果说QQ. (2)线程可以理解为在一个进程中独立运行的子任务。比如说:QQ运行时有:和好友视频的线程,传输数据的线程,发送表情的线程等等。 多任务操作系统,如Windows系列就是通过多个线程来处理任务的。 多任务环境:异步(多个线程同时执行)。 单任务环境:异步(只有一个线...原创 2019-08-08 11:48:25 · 145 阅读 · 0 评论 -
Java多线程编程核心技术第二章笔记01
1.方法内变量为线程安全,实例变量线程不安全2.多个对象多个锁public class HasSelfPrivateNum { private int num = 0; synchronized public void addI(String username){ try{ if(username.equals("a")){ ...原创 2019-08-09 11:45:53 · 164 阅读 · 0 评论 -
Java多线程编程核心技术第二章笔记02
1.将任何对象作为对象监视器,也就是以锁非this对象class Service { private String username; private String anyString = new String(); public void setUsername(String username){ try{ synchro...原创 2019-08-10 11:30:37 · 124 阅读 · 0 评论 -
Java多线程面试题
1.线程有几种状态?在Java当中,线程通常都有五种状态,创建,就绪,运行,阻塞,死亡第一是创建状态。在生成线程对象(new操作),并没有调用该对象的start方法,这是线程处于创建状态;第二是就绪状态。当调用了线程对象的start方法之后,该线程就进入了就绪状态,等待cpu分配时间片及其资源环境。在线程运行之后,从等待或者睡眠中回来之后,也会处于就绪状态第三是运行状态。线程调度程...原创 2019-08-11 11:41:42 · 121 阅读 · 0 评论 -
Java多线程编程核心技术第二章笔记
1.不适用等待/通知机制实现线程通信import java.util.ArrayList;import java.util.List;class MyList{ private List list = new ArrayList(); public void add(){ list.add("123"); } public int s...原创 2019-08-12 11:53:25 · 103 阅读 · 0 评论 -
面试必备之乐观锁与悲观锁
悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思...原创 2019-08-13 09:45:28 · 121 阅读 · 0 评论