本文主要是介绍Java 多线程概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
多线程技术概述
1.线程与进程
- 进程:内存中运行的应用程序,每个进程都拥有一个独立的内存空间。
- 线程:是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换、并发执行,一个进程最少有一个线程,线程实际数是在进程基础之上的进一步划分,一个进程启动之后,进程之中的若干执行路径又可以划分成若干个线程
2.线程的调度
- 分时调度:所有线程轮流使用CPU的使用权,平均分配时间
- 抢占式调度:让优先级高的线程先使用,如果优先级相同,则随机选择,Java为抢占式调度,**多线程不能提高程序的运行速度,但能够提高程序运行效率。
3.同步及异步
- 同步:排队进行,效率低但安全
- 异步:同时执行,效率高但数据不安全
4.并发与并行
- 并发:两个或多个事件在同一时间段内发生。
- 并行:两个或多个事件同一时刻发生
Java中实现多线程
1.继承Thread
继承Thread类之后,需要重写run()方法,并在run(){中写需要执行的代码},
在使用时需要初始化类,同时调用类的start()方法。
在实现Thread时,可以直接在main方法中直接new Thread(){继承方法}.start()执行。
使用.setPriority()设置线程优先级。
使用sleep()(静态方法,可直接调用Thread.sleep())休眠/阻塞(消耗时间的操作)线程。
示例:
2.使用Runnable类
与Thread类使用方法一致,但Runnable为接口;且Runnable为任务,需要使用Thread类(线程)执行任务。
示例:
小结:
3.使用Callable 类
示例:
这篇关于Java 多线程概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!