概述
多线程的作用和简介:
1.同时完成几项互不干扰的工作,提高CPU使用率——比如高速的四车道和八车道
2.多线程就好比在等待水开的同时看报纸,而不是等水开了之后再看报纸,多线程是为了同步完成多项任务,而是为了提高资源使用率来提高系统的效率。
3.什么是线程和进程:
进程是对整个软件的操作,线程是进程中的执行单元。比如:运行word程序就是个进程,线程就是设置字体、字号、颜色等操作,线程是进程的一个执行单元。
可以说一个进程包含很多独立的线程。
4.多线程的机制:
同一个进程中同时并处理多个任务/线程
多线程编程又叫并发编程
每个线程是相互独立的
5.线程和进程的区别:
·每个运行中的程序都是一个进程,比如QQ、微信就是两个不同的进程
·多进程:在操作系统中能运行多个任务(程序)
·多线程:在同一应用程序中多个顺序同时进行
6.线程的理解:
程序执行过程:把程序代码方法放到内存的代码里面去,这时候一个进程已经产生,但是还未开始执行,执行main方法才开始执行
使用多线程的好处和坏处:
好处:有效提高CPU利用率,加快代码执行效率
坏处:对共享数据进行操作时,如果未对共享数据做同步处理,会出现脏数据
如何实现多线程:
1.实现Runnable接口创建线程:
属于java.lang.Thread包,每一个Thread对象代表一个新的线程。
实现步骤:
(1)定义一个类实现Runnable接口
(2)实现接口中唯一的run方法,该方法是开启新线程要执行的代码
(3)声明线程实体类
(4)调用myThread.start()方法启动新开辟的线程
2.继承Thread类创建线程:
步骤:
(1)创建类MyThread并继承Thread
(2)实现类MyThread的run()方法,该方法是线程开启时要执行的代码逻辑
(3)生成MyThread类的对象
(4)调用myThread.start()方法启动新开辟的线程
3.两者区别:
优先选择实现Runnable接口方式开辟一个新的线程,因为接口的实现可以实现多个,类的继承只能是单继承
生命周期及管理:
1.线程的生命周期:
(1)新建状态(New):新建了一个线程对象
(2)就绪状态(Runnable):线程对象创建后,其他线程调用了该对象start()方法,该状态的线程位于可运行线程池中,变得可运行
(3)运行状态(Running):就绪状态的线程获取了CPU的使用权,执行程序代码
(4)阻塞状态(Blocked):
等待阻塞—运行的线程执行wait()方法,JVM(Java虚拟机---运行Java程序)会把该线程放入等待池中
同步阻塞—运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,JVM会把该线程放入锁池中
其他阻塞—运行的线程执行sleep()或join()方法 ,或者发出了I/O请求时, JVM会把该线程置为阻塞状态 当sleep()状态超时 join()等待现成终止或者超时时 或者I/O处理完毕时 线程重新转入就绪状态
5.死亡状态(Dead):线程执行完了或者因异常退出了run()方法 该线程结束生命周期
线程睡眠sleep()方法:
控制线程执行 如果需要让当前正在执行的线程暂停一会儿 并进入阻塞状态 可以通过调用thread类的静态sleep()方法来实现 睡眠过程中该线程不会执行 因此sleep方法常用来暂停程序的执行
最后
以上就是缥缈老师为你收集整理的多线程的理解的全部内容,希望文章能够帮你解决多线程的理解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复