随笔分类 -  Thread

摘要:引 如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法 阅读全文
posted @ 2019-03-08 17:00 行..知 阅读(260) 评论(0) 推荐(0)
摘要:一、进程与线程 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,即进程空间或(虚空间)。进程不依赖于线程而独立存在,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。 线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.e 阅读全文
posted @ 2019-02-28 15:29 行..知 阅读(1513) 评论(0) 推荐(0)
摘要:为什么需要AtomicInteger原子操作类?对于Java中的运算操作,例如自增或自减,若没有进行额外的同步操作,在多线程环境下就是线程不安全的。num++解析为num=num+1,明显,这个操作不具备原子性,多线程并发共享这个变量时必然会出现问题。测试代码如下: public class Ato 阅读全文
posted @ 2019-02-27 17:28 行..知 阅读(852) 评论(0) 推荐(0)
摘要:前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。 阅读全文
posted @ 2019-02-27 16:25 行..知 阅读(346) 评论(0) 推荐(0)
摘要:Runnable是个接口,使用很简单: 1. 实现该接口并重写run方法 2. 利用该类的对象创建线程 3. 线程启动时就会自动调用该对象的run方法 通常在开发中结合ExecutorService使用,将任务的提交与任务的执行解耦开,同时也能更好地利用Executor提供的各种特性 Executo 阅读全文
posted @ 2019-02-25 14:31 行..知 阅读(484) 评论(0) 推荐(0)
摘要:Callable接口: Runnable接口: 相同点: 不同点: 注意点: Callable接口支持返回执行结果,此时需要调用FutureTask.get()方法实现,此方法会阻塞主线程直到获取‘将来’结果;当不调用此方法时,主线程不会阻塞! Callable工作的Demo: package co 阅读全文
posted @ 2019-02-25 09:22 行..知 阅读(361) 评论(0) 推荐(0)
摘要:java.util.concurrent 是在并发编程中很常用的实用工具类。此包包括了几个小的、已标准化的可扩展框架,以及一些提供有用功能的类,没有这些类,这些功能会很难实现或实现起来冗长乏味。下面简要描述主要的组件。另请参阅 locks 和 atomic 包。 java.util.concurre 阅读全文
posted @ 2019-02-21 11:22 行..知 阅读(224) 评论(0) 推荐(0)