A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 13031266255 中级黑马   /  2015-4-16 14:49  /  1157 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、什么是线程?
所谓线程是进程内部的一个控制序列流,不同的线程好像在独立运行并且有自己的cpu,但是线程间共享地址空间。
而每个进程都有自己独立的地址空间,一个进程内可以有多个并发运行的线程。
2、java种写线程有那些方法
(1)线程可以直接继承java.lang.Thread,你可以覆盖run方法来实现自己的功能。
(2)可以实现Runnable接口。(由于java不支持多继承,因此这种方法被广泛采用),必须实现run接口。在调用的时候可以用new Thread(new RunnableClass(), 'Threadname').start()
3、java线程内使用的一些基本方法
(1)如果run()方法已经完成了所需的工作,可以用yield()方法给调度一个暗示。
(2)sleep(),让线程休眠一段时间。必须放在try-catch块中,这是因为sleep的过程可能被中断。
(3)setPriority()设置优先级。
(4)setDaemon()设置为后台线程
isDaemon()判断是否为后台线程
(5)join()加入到目标线程,知道目标线程结束才继续执行。
例如有线程t1,t2
在t1中执行t2.join()。
那么t1要等到t2执行完了才可以继续执行。
4、java线程如何解决资源冲突问题
采用synchronized关键字来解决资源冲突的问题。
sychronized关键字修饰:
(1)限制对临界区的访问:当线程要执行被synchronized关键字包含的代码段的时候,他将检查信号量是否存在,然后获取代码,释放信号量。这段代码被成为“临界区”.
例子:
synchronized(syncObject){
....
}
这段代码的意思是,如果要进入该临界区,必须获得对象syncObject的锁。此对象未必为当前对象。
(2)限制对资源的访问:通过将所有访问这个资源的方法标记为synchronized,可以限制对资源的访问。此时,如果某个线程处在synchronized方法中,其他所有的想要进入任何synchronized方法的线程都将被阻塞。进入synchronized方法的线程相当于获得了该对象的锁,其他任何线程如果想进入synchronized方法都必须等前面的线程释放该对象的锁之后才可以。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马