首页 > 编程语言
java 多线程2:Thread的实例方法
Thread类中的方法调用方式:学习Thread类中的方法是学习多线程的第一步。在学习多线程之前特别提出一点,调用Thread中的方法的时候,在线程类中,有两种方式,一定要理解这两种方式的区别:1、this.XXX() 和 线程对象实例.XXX() 这里要首先参考 多线程 Thread.curren... ...
分类:编程语言   时间:2017-03-23 18:57:44    收藏:0  评论:0  赞:0  阅读:266
java 多线程1:进程与线程概述
进程和线程谈到多线程,就得先讲进程和线程的概念。进程进程可以理解为受操作系统管理的基本运行单元。360浏览器是一个进程、WPS也是一个进程,正在操作系统中运行的".exe"都可以理解为一个进程线程进程中独立运行的子任务就是一个线程。像QQ.exe运行的时候就有很多子任务在运行,比如聊天线程、好友视频... ...
分类:编程语言   时间:2017-03-23 18:57:19    收藏:0  评论:0  赞:0  阅读:269
java 多线程8 : synchronized锁机制 之 方法锁
脏读一个常见的概念。在多线程中,难免会出现在多个线程中对同一个对象的实例变量或者全局静态变量进行并发访问的情况,如果不做正确的同步处理,那么产生的后果就是"脏读",也就是取到的数据其实是被更改过的。注意这里 局部变量是不存在脏读的情况多线程线程实例变量非线程安全看一段代码:public class ... ...
分类:编程语言   时间:2017-03-23 18:56:20    收藏:0  评论:0  赞:0  阅读:243
java 多线程7: (suspend方法与resume方法) 挂起与恢复
suspend方法与resume 是 实例方法,已废弃缺点一:会造成独占,从而造成死锁缺点二:会造成数据不同步,不能保证数据原子性 ...
分类:编程语言   时间:2017-03-23 18:55:58    收藏:0  评论:0  赞:0  阅读:361
java 多线程6: 中断机制 优雅的终止java线程
前文 java 多线程5: java 终止线程及中断机制 (stop()、interrupt() 、interrupted()、isInterrupted())使用 interrupt() 和 interrupted() 判断来终止线程public class Run { public static... ...
分类:编程语言   时间:2017-03-23 18:54:58    收藏:0  评论:0  赞:0  阅读:231
java 多线程5: java 终止线程及中断机制 (stop()、interrupt() 、interrupted()、isInterrupted())
JAVA中有3种方式可以终止正在运行的线程①线程正常退出,即run()方法执行完毕了②使用Thread类中的stop()方法强行终止线程。但stop()方法已经过期了,不推荐使用③使用中断机制interrupt()1.stop()方法stop()在java多线程中已经废弃1.stop()方法会导致释... ...
分类:编程语言   时间:2017-03-23 18:54:07    收藏:0  评论:0  赞:0  阅读:291
java 多线程11:volatile关键字
直接先举一个例子普通的线程实例变量的非可见性:public class MyThread28 extends Thread { private boolean isRunning = true; public boolean isRunning() { return isRunning; } pub... ...
分类:编程语言   时间:2017-03-23 18:53:39    收藏:0  评论:0  赞:0  阅读:304
java 多线程10:synchronized锁机制 之 锁定类静态方法 和锁定类.Class 和 数据String的常量池特性
同步静态方法synchronized还可以应用在静态方法上,如果这么写,则代表的是对当前.java文件对应的Class类加锁。看一下例子,注意一下printC()并不是一个静态方法:public class ThreadDomain25{ public synchronized static voi... ...
分类:编程语言   时间:2017-03-23 18:52:56    收藏:0  评论:0  赞:0  阅读:349
java 多线程9 : synchronized锁机制 之 代码块锁
synchronized同步代码块用关键字synchronized声明方法在某些情况下是有弊端的,比如A线程调用同步方法执行一个较长时间的任务,那么B线程必须等待比较长的时间。这种情况下可以尝试使用synchronized同步语句块来解决问题。看一下例子:下面例子是优化后的例子 使用代码块锁,原先例... ...
分类:编程语言   时间:2017-03-23 18:52:05    收藏:0  评论:0  赞:0  阅读:234
java多线程13 : 死锁
前言死锁单独写一篇文章是因为这是一个很严重的、必须要引起重视的问题。这不是夸大死锁的风险,尽管锁被持有的时间通常很短,但是作为商业产品的应用程序每天可能要执行数十亿次获取锁->释放锁的操作,只要在这数十亿次操作中只要有一次发生了错误,就可能导致程序中发生死锁,并且即使通过压力测试也不可能找出所有潜在... ...
分类:编程语言   时间:2017-03-23 18:50:41    收藏:0  评论:0  赞:0  阅读:301
java多线程16:join()的使用
讲解join()方法之前请确保对于即wait()/notify()/notifyAll()机制已熟练掌握。可以参考前面的笔记join()方法的作用是等待线程销毁。join()方法反应的是一个很现实的问题,比如main线程的执行时间是1s,子线程的执行时间是10s,但是主线程依赖子线程执行完的结果,这... ...
分类:编程语言   时间:2017-03-23 18:50:16    收藏:0  评论:0  赞:0  阅读:286
java多线程15 :wait()和notify() 的生产者/消费者模式
什么是生产者/消费者模型一种重要的模型,基于等待/通知机制。生产者/消费者模型描述的是有一块缓冲区作为仓库,生产者可将产品放入仓库,消费者可以从仓库中取出产品,生产者/消费者模型关注的是以下几个点:1、生产者生产的时候消费者不能消费2、消费者消费的时候生产者不能生产3、缓冲区空时消费者不能消费4、缓... ...
分类:编程语言   时间:2017-03-23 18:49:20    收藏:0  评论:0  赞:0  阅读:265
java多线程 21 : ReentrantReadWriteLock ,synchronized和ReentrantLock的对比
读写锁ReentrantReadWriteLock概述大型网站中很重要的一块内容就是数据的读写,ReentrantLock虽然具有完全互斥排他的效果(即同一时间只有一个线程正在执行lock后面的任务),但是效率非常低。所以在JDK中提供了一种读写锁ReentrantReadWriteLock,使用它... ...
分类:编程语言   时间:2017-03-23 18:48:53    收藏:0  评论:0  赞:0  阅读:214
java多线程20 : ReentrantLock中的方法 ,公平锁和非公平锁
公平锁与非公平锁ReentrantLock有一个很大的特点,就是可以指定锁是公平锁还是非公平锁,公平锁表示线程获取锁的顺序是按照线程排队的顺序来分配的,而非公平锁就是一种获取锁的抢占机制,是随机获得锁的,先来的未必就一定能先得到锁,从这个角度讲,synchronized其实就是一种非公平锁。非公平锁... ...
分类:编程语言   时间:2017-03-23 18:48:21    收藏:0  评论:0  赞:0  阅读:245
java 多线程 19: ReentrantLock 与 Condition
ReentrantLockReentrantLock,一个可重入的互斥锁,它具有与使用synchronized方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但功能更强大。ReentrantLock基本用法先来看一下ReentrantLock的基本用法:public class Thread... ...
分类:编程语言   时间:2017-03-23 18:47:12    收藏:0  评论:0  赞:0  阅读:280
java多线程18: ThreadLocal的作用
从上一篇对于ThreadLocal的分析来看,可以得出结论:ThreadLocal不是用来解决共享对象的多线程访问问题的,通过ThreadLocal的set()方法设置到线程的ThreadLocal.ThreadLocalMap里的是是线程自己要存储的对象,其他线程不需要去访问,也是访问不到的。各个... ...
分类:编程语言   时间:2017-03-23 18:46:42    收藏:0  评论:0  赞:0  阅读:213
java多线程17:ThreadLocal源码剖析
ThreadLocal源码剖析ThreadLocal其实比较简单,因为类里就三个public方法:set(T value)、get()、remove()。先剖析源码清楚地知道ThreadLocal是干什么用的、再使用、最后总结,讲解ThreadLocal采取这样的思路。 三个理论基础在剖析Threa... ...
分类:编程语言   时间:2017-03-23 18:46:08    收藏:0  评论:0  赞:0  阅读:234
java 多线程 26 : 线程池
使用线程池与不使用线程池的差别先来看一下使用线程池与不适应线程池的差别,第一段代码是使用线程池的:public static void main(String[] args) { long startTime = System.currentTimeMillis(); final List l = ... ...
分类:编程语言   时间:2017-03-23 18:45:12    收藏:0  评论:0  赞:0  阅读:206
java 多线程 25 :线程和线程组的异常处理
线程中出现异常从上面代码可以看出来处理线程的异常设置异常的两种方式1.全局异常,也是静态异常,是个静态方法 , 类.setDefaultUncaughtExceptionHandler()2.对象一样,针对单个线程设置的异常,对象.setUncaughtExceptionHandler()ps:如果... ...
分类:编程语言   时间:2017-03-23 18:44:50    收藏:0  评论:0  赞:0  阅读:270
java 多线程 24 : 线程组
线程组可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线程,这样的组织结构有点类似于树的形式,如图所示: 线程组的作用是:可以批量管理线程或线程组对象,有效地对线程或线程组对象进行组织。 线程关联线程组:1级关联所谓1级关联就是父对象中有子对象,但并不创建孙对象。... ...
分类:编程语言   时间:2017-03-23 18:43:28    收藏:0  评论:0  赞:0  阅读:252
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!