【线程】--基础知识
来源:互联网 发布:淘宝量子恒道统计 编辑:程序博客网 时间:2024/06/06 02:26
线程的概念:线程是进程中独立运行的子任务。(就例如我们打开任务管理器,进程面板中罗列的都是当前机器上运行的进程,例如其中有个正在运行的qq进程,在qq进程中发送文件到手机上面和跟好朋友聊天,这就是两个不同的线程)。
使用多线程的背景:原来的电脑都是单核的,然后需要CPU根据时间片来轮询每个线程,可这样,效率很低下。随着技术的跟新,如今电脑都是多核的,使用多线程可以提升效率节省资源。这个其实就好比银行办理业务。最开始都只有一个服务窗口,但是由于来银行办理业务的人越来越多,银行长大手一挥说:“人多了,那就多加几个窗口”,没过多长时间,人们又说银行办公人员都有周六日的,但是我们有时候又偏偏在周六日要办理业务,而且还是24小时不固定是哪个点办理业务,于是银行长又来了,再次大手一挥说:“顾客就是上帝,那就添加几个自动服务窗口。”这个简单的例子就是多线程的写照。
实现多线程的方式:
1. 继承Thread类
2. 实现Runable接口。
线程的分类:
1. 用户线程
2. 守护线程。
备注:守护线程是用户线程的保姆,最典型的应用GC回收线程。换句话说,如果用户线程都撤离了虚拟机,那么守护线程也将誓死追随用户线程的脚步离开虚拟机。而且用户线程变成守护线程只需要使用setDaemon方法就可实现。
线程的优先级
就如我们去银行办理业务是一样的道理,都需要先领个号,然后排号,等着叫号。那许多线程又是如何安排他们的执行顺序的呢?这就是通过线程的优先级来实现的。线程最小优先级是1,最大是10,常见的是5。
线程的常用方法:
1. currentThread()方法查看当前线程。
2. isAlive()查看线程是否存活
3. sleep()使线程进入睡眠状态,减缓线程的执行,让其他线程有机会执行。
4. getId()获得线程的Id编号。
5. yield()方法让当前的线程放弃CPU的资源,重新进入CPU资源竞选。
6. stop()暴力停止线程,不推崇使用。
7. interrupted()停止线程
8. suspend()暂停线程
9. resume()恢复线程。
线程的生命状态
好了,线程的基础知识就暂时分享到这里了,后期还会有一些关于线程的实践博客,欢迎拍砖。
- 线程基础知识
- 线程基础知识
- 线程基础知识
- 线程基础知识
- 线程基础知识
- 线程基础知识
- 线程基础知识
- 线程基础知识
- 线程基础知识
- 【线程】--基础知识
- 线程基础知识
- 线程基础知识
- 线程基础知识
- 线程基础知识
- 线程基础知识
- 线程的基础知识
- 线程的基础知识【转帖】
- 线程的基础知识
- Java Web 中通过request请求头获取客户端真实IP
- 在前后端分离的项目中,后台使用shiro框架时,怎样使用它的会话管理系统(session),从而实现权限控制
- 转:Windows文件关联和VC实现
- Loaders 的使用,结合Fragments
- Skill: TightVNC Server: 重置密码
- 【线程】--基础知识
- Druid:一个用于大数据实时处理的开源分布式系统
- 交通银行闪退问题
- ajax post 提交中文java后台获取参数出现乱码解决方法
- linux日志管理
- 毕业生必须知道:干部身份、三方协议、派遣证、人事代理、户口迁移 、编制、工龄、签约、档案
- Android中Parcelable接口用法
- Max Sum
- 只区分ie(不分版本)和其他浏览器