1.解释实现多线程的几种方法?一 Java 线程可以实现 Runnable 接口或者继承 Thread
类来实现,当你打算多重继承时,优先选择实现 Runnable。2.Thread.start ()与 Thread.run
()有什么区别?Thread.start ()方法(native)启动线程...
分类:
编程语言 时间:
2014-05-23 08:37:33
阅读次数:
311
Writing Reentrant and Thread-Safe
Code编写可重入和线程安全的代码(http://www.ualberta.ca/dept/chemeng/AIX-43/share/man/info/C/a_doc_lib/aixprggd/genprogc/writing_re...
分类:
编程语言 时间:
2014-05-21 21:30:30
阅读次数:
434
jstack Dump 日志文件中的线程状态dump
文件里,值得关注的线程状态有:死锁,Deadlock(重点关注)执行中,Runnable 等待资源,Waiting on
condition(重点关注)等待获取监视器,Waiting on monitor entry(重点关注)暂停,Suspen...
分类:
编程语言 时间:
2014-05-21 18:59:45
阅读次数:
502
在java中可有两种方式实现多线程,一种是继承
Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的
run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限, 下面看例子: p.....
分类:
其他好文 时间:
2014-05-21 18:57:11
阅读次数:
249
Subsections
线程安全(Thread safety)
锁(lock)
共享对象
对象组合
基础构建模块
任务执行
取消和关闭
线程池的使用
性能与可伸缩性
并发程序的测试
显示锁
原子变量和非阻塞同步机制
一、线程安全(Thread safety)
无论何时,只要多于一个线程访问给定的状态变量。而且其中某个线程会写入该变量,此时必须使用同...
分类:
编程语言 时间:
2014-05-21 17:11:45
阅读次数:
500
TLS(Thread Local Storage) 线程局部存储
所有的线程都共享着进程的虚拟地址~ 局部变量为每个线程所独立共享的,静态变量和全局变量是进程中所有线程一起共享的~ TLS可以为线程提供一个唯一的数据用一个全局的索引~每个线程 有自己的副本~各个线程互不影响~其实所保存的数据就是线程关联的~
先看个图:
如图可见每个线程有自己独立的TLS表格,相当于一个数组...
分类:
编程语言 时间:
2014-05-21 16:45:55
阅读次数:
339
接上文
遗留问题
对于Java多线程的理解,我以前仅仅局限于实现Runnable接口或者继承Thread类,然后重写run()方法,最后start()调用就算完事,但是一旦涉及死锁以及对共享资源的访问和随时监控线程的状态和执行顺序和线程返回值等就不行了。
Callable 和 Future 简介
Callable接口代表一段可以调用并返回结果的代码;Future接口表示是执行异步任务...
分类:
移动开发 时间:
2014-05-21 13:40:13
阅读次数:
371
There are two types of non-blocking thread synchronization algorithms
- lock-free, and wait-free. Their meaning is often confused. In lock-free systems, while any particular computation may be block...
分类:
其他好文 时间:
2014-05-21 10:27:20
阅读次数:
410
从多任务OS开始,线程主要用来表示IO异步;而今随着4G和多核等的到来,计算密集型又热门起来了。
硬件价格和性能从低到高:
PC/Laptop multi core, memory shared
PC clusters
SuperComputers
假设一个理想并行计算机:每个处理器计算能力相同,忽略调度,
static thread 是对一个虚拟处理器的软件层面的抽象;
s...
分类:
其他好文 时间:
2014-05-21 08:17:39
阅读次数:
326
Java线程(Java Thread)是执行某些任务的一种轻量级进程。Java中的Thread类提供了多线程(multi-threading)功能,应用程序可以创建多个线程并同时运行。
在一个应用程序中,通常会有两种类型的线程-用户线程(user thread)和守护线程(daemon thread)。当我们启动引用程序时,首先创建用户线程main,我们可以创建多个用户线程和守护线程。当...
分类:
编程语言 时间:
2014-05-21 07:26:06
阅读次数:
370