![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
-----【多线程】
文章平均质量分 52
吴晓如
这个作者很懒,什么都没留下…
展开
-
Java线程调用的随机性
在Java的JDK开发包中,已经自带了对多线程技术的支持,可以很方便进行多线程编程。方式一般有两种,一种是继承Thread类,另一种是实现Runnable接口。Thread类的结构: public class Thread implements Runnable从类的结构可以看出Thread类实现了Runnable接口,它们之间具有多态关系。Java语言的特点是单根继承,所以为了支持多继...原创 2017-08-26 22:04:57 · 1421 阅读 · 18 评论 -
线程的优先级
在操作系统中,线程可以划分优先级,优先级较高的线程得到的CPU资源较多,也就是CPU优先执行优先级较高的线程对象中的任务。 设置线程优先级有助于帮"线程规划器"确定在下一次选择哪一个线程来优先执行。 设置线程的优先级使用setPriority()方法,在JDK中已经封装。1、线程优先级具有继承特性 在Java中,线程的优先级具有继承性,如果A线程启动B线程,则B线程的优先级与A...原创 2017-09-10 17:22:21 · 649 阅读 · 17 评论 -
Java线程的状态及转换
上面博客介绍了创建多线程的两种方式,下面介绍下Java线程的状态转换。 初始状态(NEW):实现Runnable接口和继承Thread可以得到一个线程类,new一个实例出来,线程就进入了初始状态。 可运行状态(RUNNABLE):线程对象创建后,其他线程比如main线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu的使用权。 运行(RUNNIN...原创 2018-04-12 17:41:35 · 938 阅读 · 21 评论 -
Java多线程--synchronized同步方法
synchronized同步方法是为了解决“非线程安全”的问题,所谓“非线程安全”是指多个线程对同一个对象中的变量进行并发访问时发生,产生“脏读”的情况。 一、方法内的变量为线程安全 “非线程安全”问题存在于“实例变量”中,如果是方法内部的私有变量,则不存在“非线程安全”问题,也就是“线程安全”的了。 demo: HasSelfPrivateNum类: public class ...原创 2018-06-04 16:59:11 · 378 阅读 · 8 评论 -
Java多线程--多个对象多个锁
上一篇博客中介绍了多个线程同时访问一个对象,产生一个对象锁,属于同步访问,现在介绍下如果是访问多个对象,会怎么执行那? Demo: HasSelfPrivateNum类: public class HasSelfPrivateNum { private int num=0; synchronized public void addI(String username){ ...原创 2018-06-04 17:22:05 · 3966 阅读 · 12 评论 -
Java多线程--锁对象
前面总结了多个线程访问同一个对象的同步方法以同步执行,多个线程访问多个对象的同步方法则以异步方式执行,那如果多个线程分别访问一个对象中同步方法和非同步方法会如何执行那? Demo: MyObject类(包含了一个同步方法和一个非同步方法): public class MyObject { synchronized public void methodA(){ ...原创 2018-06-04 19:02:17 · 420 阅读 · 10 评论 -
CAS机制
先来看一段代码,看一下执行结果是多少? 示例:启动两个线程,每个线程中让静态变量count循环累加100次 public class CAS { public static int count=0; public static void main(String[] args) { //开启两个线程 for(int i=0;i<2;i++...原创 2018-08-27 10:58:42 · 356 阅读 · 0 评论