多线程
文章平均质量分 73
109905418
谨慎,优秀,力戒浮躁!
展开
-
多线程之4-------java 5原子性操作类的应用
先了解java5 线程并发库查看api中 java.util.concurrent.atomic 包,一 AtomicInteger 类,在程序中可能对整数执行加,有可能你加完了,还没取得新值,别人又加,别人一增加,取出来的数可能就不是我希望得到的, 使用AtomicInteger 类可以解决多线程访问整数的问题.使用 AtomicInteger类流程如下:1. 首先原创 2012-05-02 23:16:17 · 1191 阅读 · 0 评论 -
关于new Handler().postDelayed()
new Handler().postDelayed(new Runnable() { @Override public void run() { } }, 800); 经本人做项目中反复验证 此方法会引起屏幕刷新,因此常用于启动页面的进度条刷新, 其他页面慎用原创 2013-07-29 16:09:52 · 11765 阅读 · 1 评论 -
多线程13__线程基本概念
在多线程中, 不论是 继承 Thread类, 还是实现 Runnable 接口,都要重写run()方法, 注意很重要的一条: run() 方法执行结束, 线程也就结束了.原创 2014-12-24 00:09:51 · 698 阅读 · 0 评论 -
多线程之11-------线程之间有关协作的方法:wait()与notifyAll()
当使用线程来同时运行多个任务时,可以通过使用锁(互斥) 来同步两个任务的行为, 从而使得一个任务不会干涉另一个任务的资源。 也就是说如果两个任务在交替着步入某项共享资源, 你可以使用互斥来使腹任何时刻只有一个任务可以访问 该资源.第一步. 当任务协作时, 关键问题是这些任务之间的握手. 为了实现这种握手,要使用线程的基础特性: 互斥。 互斥能够确保只有一个任务可以响应某个信号,这样原创 2015-05-09 23:24:10 · 942 阅读 · 0 评论 -
多线程12___SingleThreadExecutor(单一线程执行器), 可替代 在共享资源上同步
SingleThreadExecutor 就像是线程数量为1的FixedThreadPool (指定数量的线程池). 如果希望在 子线程中连续运行 任何流程(长期存活的任务) ,很有用处.例如: 监听进入的Socket 连接的任务.一. 如果向SingleThreadExecutor 提交了多个任务, 那么这些任务将排队, 每个任务都会在下一任务开始前,结束运行. 所有的原创 2014-12-18 00:23:55 · 5026 阅读 · 0 评论 -
多线程之9——BlockingQueue (阻塞队列)
第一题:现有的程序代码模拟产生了16个日志对象,并且需要运行16秒才能打印完这些日志,请在程序中增加4个线程去调用parseLog()方法来分头打印这16个日志对象,程序只需要运行4秒即可打印完这些日志对象。原始代码如下:package read;public class Test {public static void main(String[] args){原创 2014-05-29 00:09:42 · 1203 阅读 · 0 评论 -
多线程之7 -------线程锁与通信
本文介绍 Lock 的用法, Lock 有 synchronized 的功能,能够防止被打扰,确保程序执行是同步的. public class LockTest { public static void main(String[] args) { new LockTest().init(); } private void init(){ final Outpu原创 2012-06-16 00:02:52 · 672 阅读 · 0 评论 -
多线程之10——SynchronousQueue(同步队列)
现有程序中的Test 类在不断产生原创 2014-07-13 20:04:32 · 894 阅读 · 0 评论 -
多线程之2-------android开发之重点(未完)
线程同步通信技术 同步通信: 是相对于前一篇线程互斥来说的要用到共同数据(包括同步锁 synchronized 对象)的若干个方法应该归在同一个类身上,这种设计正好体现了高类聚和程序的健壮性 -------------------------------------线程范围内共享变量的概念与作用一 假设有三个线程,它们都访问了三个对象,第一个对象设置值,第二,三个对象取值,同原创 2011-10-13 00:16:19 · 689 阅读 · 0 评论 -
面试题:多线程
现有程序同时启动了4个线程去调用TestDo.doSome(key, value)方法,由于TestDo.doSome(key, value)方法内的代码是先暂停1秒,然后再输出以秒为单位的当前时间值,所以,会打印出4个相同的时间值,如下所示:4:4:12581996151:1:12581996153:3:12581996151:2:1258199615 请修改代原创 2014-07-13 23:42:13 · 1060 阅读 · 0 评论 -
多线程之3-------多个线程访问共享数据的方式
本文先从一个面试题说起:设计4个线程,其中两个线程每次对 j +1, 另外两个线程对 j-1, 分析: 这里 j 看作是一个共享数据从现实例子来看,可以扩展到卖票,假设有100张票, 分5个窗口卖。这个问题也涉及到多线程解决: 分两种情况 1 如果每个线程执行的代码相同,可以使用同一个Runnable 对象,此Runnable 对象存在共享数据, 如:原创 2012-04-24 22:53:29 · 2106 阅读 · 0 评论 -
关于Thread -----使用线程更新进度组件
java.lang.Thread是线程类 ,本例使用thread对象同时对两个进度条进行更新,要实现在线程中更新GUI组件需要使用Handler 类先看一看 消息机制原理图在这里调用Handler的 post方法执行run方法来更新进度条注意: 使用Handler 类既可以使用 sendMessage 方法发送消息来调用handleMessage 方法处理任务,也可以直接使用原创 2011-08-13 19:51:57 · 2792 阅读 · 0 评论 -
多线程--------android 开发之重点
线程不是什么时髦的技术,它是最基本的技术 线程:就是程序执行的一条线索,如图一 创建线程的两种方式1 在Thread 子类覆盖的 run 方法中编写代码2 在传递给Thread 对象的Runnable 对象的run方法中编写代码以下一个示例/** * 一个传统的线程类 */public class TraditionalThread { public原创 2011-10-11 01:17:32 · 920 阅读 · 0 评论 -
多线程之5-------线程池
线程池的作用先举一个现实生活的例子,我要办喜事,为了礼仪,要一个一个接待, 来一个人就说"您好,欢迎您",然后接着跟下一个人说"您好,"在这里接待一个人 就可以看作是创建一个线程,如图线程池 的 概念:首先创建一些线程,它们的集合称为线程池。当服务器接受到一个客户请求后,就从线程池中取出一个空闲的线程为之服务,服务完后不关闭该线程,而是将该线程还回到线程式池中。原创 2012-05-22 23:50:02 · 1581 阅读 · 0 评论 -
多线程之8 -------Condition 实现线程同步通信
Condition (通信) 的功能类似在传统线程技术中的 wait 和 notify 的功能。在等待Condition 时,允许发生"虚假唤醒".Condition 应该总是在一个循环中被等待,并测试正被等待的状态声明。通俗地说: 程序将 CPU 分给了我(线程),我可以让出CPU, 说兄弟(线程)你干活吧,我暂停,兄弟你干完了再通知我, 说:"大哥,你干吧,我干完了" , 这样原创 2012-06-29 00:35:44 · 1001 阅读 · 0 评论 -
多线程之6-------Callable & Future
Callable & Future的作用: 程序启动一个线程,完了之后会一个返回结果.1. Future 取得的结果类型和 Callable 返回的结果类必须一致,这是通过泛型来实现的.2. Callable 要采用 ExecutorService 的 submit 方法提交,返回的future 对象可以取消任务.3. CompletinService 用于提交一组 Callab原创 2012-06-14 00:17:35 · 799 阅读 · 0 评论 -
多线程14__Java同步代码块,同步方法
同步代码块 参见http://www.cnblogs.com/sunzn/archive/2013/02/13/2910895.html,这里改为限制循环次数50次:new Thread() { public void run() { int i=0; while (i<50) {原创 2015-04-25 13:17:53 · 1730 阅读 · 0 评论