摘要: Callable返回结果并且可能抛出异常的任务。实现者定义了一个不带任何参数的叫做 call 的方法。 Callable接口类似于Runnable。 示例一: Runnable接口示例: Callable接口示例: Runnable 接口 与 Callable 接口的区别 :任务调用的方法分别是ru 阅读全文
posted @ 2016-06-27 18:09 伏天速 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 首先,为什么要使用线程池?当我们写helloworld的时,简简单单创建一个线程处理简简单单的任务,那肯定不需要线程池。但是对于需要处理大量请求诸如web服务器这样的应用来说,如果每当一个请求到达就创建一个新线程,然后在新线程中为请求服务。那么,服务器在创建和销毁线程上花费的时间和消耗的系统资源要比 阅读全文
posted @ 2016-06-27 18:09 伏天速 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 先看示例: 上面示例中,定义了一个类变量num1,创建两个线程分别给num1赋随机值然后打印,在内部类A中也对num1的值进行打印。整个过程中,变量num1为所有线程所共享,只要有一个线程将其值改变,其它线程的值也会跟着改变。那么问题就来了,在很多时候,我们在一个线程中处理的数据,仅希望它在当前线程 阅读全文
posted @ 2016-06-27 18:07 伏天速 阅读(166) 评论(0) 推荐(0) 编辑
摘要: java.util.Timer一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。 示例:现在有两个任务A和B,没过5秒执行A,再过3秒执行B,如此交替循环执行。 在实际项目上用到较多Quartz是一个完全由Java编写的开源作业调度框架。 阅读全文
posted @ 2016-06-27 18:04 伏天速 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 在java.util.concurrent.atomic提供了一下关于原子操作的类,这些类包括:AtomicLong、AtomicInteger、AtomicBoolean。以及对数组操作的AtomicIntegerArray、AtomicLongArray。 在线程的初步认识的Demo2,因为原子 阅读全文
posted @ 2016-06-27 18:03 伏天速 阅读(173) 评论(0) 推荐(0) 编辑
摘要: java 中的线程优先级的范围是1~10,默认的优先级是5。“高优先级线程”会优先于“低优先级线程”执行。优先比不是绝对。 java 中有两种线程:用户线程和守护线程。可以通过isDaemon()方法来区别它们:如果返回false,则说明该线程是“用户线程”;否则就是“守护线程”。 用户线程一般用户 阅读全文
posted @ 2016-06-27 18:01 伏天速 阅读(288) 评论(0) 推荐(0) 编辑
摘要: interrupt()的作用是中断本线程。本线程中断自己是被允许的;其它线程调用本线程的interrupt()方法时,会通过checkAccess()检查权限。这有可能抛出SecurityException异常。如果本线程是处于阻塞状态:调用线程的wait(), wait(long)或wait(lo 阅读全文
posted @ 2016-06-27 02:22 伏天速 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 在Object.java中,定义了wait(), notify()和notifyAll()等接口。 notify() -- 唤醒在此对象监视器上等待的单个线程。notifyAll() -- 唤醒在此对象监视器上等待的所有线程。wait() -- 让当前线程处于“等待(阻塞)状态”,“直到其他线程调用 阅读全文
posted @ 2016-06-27 02:05 伏天速 阅读(151) 评论(0) 推荐(0) 编辑