多线程
来源:互联网 发布:淘宝客优惠券网站建立 编辑:程序博客网 时间:2024/05/17 04:28
多线程
多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。
多线程的优势:
1.提高界面程序的响应速度.
2.充分利用系统资源.
在线程编程中,继承Thread类或实现Runnable接口的类才具备多线程的能力。
线程的生命周期与主要的线程状态:
1. 新建状态(New).
2. 就绪状态(Runnable).
3. 运行状态(Run).
4. 阻塞状态(Block).
5. 终止状态(Dead).
线程的优先级用1~10表示,1表四优先级最高,默认值是5,每个优先级值对应Thread类中的一个公共静态常量。
如果有多个线程在等待,并不是优先级越高就肯定越早执行,只是获得的机会更多一些,因此通常情况下,不要依靠线程优先级来控制线程的状态。
线程调度
1. 线程睡眠sleep()
i. 调用sleep()方法使线程处于睡眠,线程由运行状态进入不可运行的状态,睡眠时间过后线程再次进入可运行状态。
2. 暂停线程yield()
i. 调用yield()方法可暂停当前线程执行,将CPU资源让出来,允许其他线程执行。
ii. Yield()的优点是保证有工作时不会让CPU闲置,主要用于编写多个合作线程,也适合于强制线程间的合作。
3. 连接线程join()
i. 调用join()方法可使当前线程暂停执行,等待调用该方法的线程的结束后再继续执行本线程。
4. 中断线程interrupt()
i. Interrupt()方法可为线程设置一个中断标记,以便于run()方法运行时使用isInterrupted()方法能够检测到。此时,线程在sleep()之类的方法中被阻塞时,由sleep()方法抛出一个InterruptException()异常,然后捕捉这个异常以处理超时。
ii. Interrupt()只是一个中断标记,并没有中断线程运行。
将线程标记为守护线程(后台线程):setDaemon(true);注意该方法要在线程开启前使用。和前台线程一样开启,并抢资源运行,所不同的是,当前台线程都结束后,后台线程会自动结束。无论后台线程处于什么状态都会自动结束。
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 求有N种颜色的珠子串中包含所有颜色的最短子串
- java 多线程课程 包括多线程的实现和生命周期
- Http请求信息
- 《Hello World——C#》
- 动态规划问题
- 多线程
- sh文件的执行
- windows下Qt编译遇到的问题
- 小小程序员的成长
- 利用WebView制作简单的pdf.doc 阅读器
- Java 线程的创建与消亡
- 安装了新软件后,会在开始菜单有快捷方式。但在win7中,此快捷方式为黄色,格外显眼,须点击才能变得无颜色。
- 多线程
- linux 下sqlite的 C编程之sqlite3_get_table