创建线程的七种方法 (图解 全网最全最详细)

您所在的位置:网站首页 创建线程两种方法的区别和联系 创建线程的七种方法 (图解 全网最全最详细)

创建线程的七种方法 (图解 全网最全最详细)

2024-07-15 18:53| 来源: 网络整理| 查看: 265

本文创建于 2021年5月14日 作者:Xiang 参考文献;创建多线程的四种方法 创建线程的8种方法 创建匿名线程的5种方法

特别鸣谢

文章目录 1、什么是多线程2、线程状态3、线程同步方法4、创建线程的七种方法==(重要)==4.1、继承Thread类4.2、实现Runnable4.3、实现Callable接口4.4、创建线程池4.5、定时器4.6、Lambda表达式实现4.7、Spring实现多线程4.7.1、Maven工程导入Spring相关依赖4.7.2、新建Java类,开启@EnableAsync注解4.7.3、方法类4.7.4、主方法类

1、什么是多线程

​ 线程被称为轻量级进程,一个进程会有多个线程。但一个线程是程序执行过程中最小单位,每个程序至少一条线程

2、线程状态 新建(new)创建后尚未启动线程运行(Runable):包括Runing、Ready,处于这种情况的线程有可能正在执行,也有可能等待CPU为他分配资源等待(Wating):这种状态的线程不会被分配CPU执行时间,等待分为无限期等待和有限期等待,处于无限期等待的线程需要被其他线程显示召唤,没有设置TimeOut参数的Object.wait()、没有设置Timeout参数的 Thread.join()方法都会进入无限期等待状态;有限期等待无须等待其他线程召唤,在一定时间由系统自动激活,Thread.sleep(),设置了TimeOut参数的Object.wai t()阻塞(Blocked):线程被阻塞,阻塞状态“在等待着获取到一个排他锁,这个时间将在另外一个线程放弃这个锁的时候发生;而”等待状态“则是在等待一段时间或者唤醒动作的发生。在程序等待进入同步区域的时候,线程将进入这种状态。结束(Terminated):终止线程 3、线程同步方法

wait():使线程处于一种等待状态,释放所持有的对象锁。

sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用它时要捕获InterruptedException异常,不释放对象锁。

notify():唤醒一个正在等待状态的线程。注意调用此方法时,并不能确切知道唤醒的是哪一个等待状态的线程,是由JVM来决定唤醒哪个线程,不是由线程优先级决定的。

notifyAll():唤醒所有等待状态的线程,注意并不是给所有唤醒线程一个对象锁,而是让它们竞争。

4、创建线程的七种方法==(重要)== 4.1、继承Thread类 class ThreadTest { public static void main(String[] args) { noAnonymity(); } // 匿名创建多线程 public static void anonymity(){ for (int i = 0; i { System.out.println(Thread.currentThread().getName() + "\t 创建线程"); }).start(); } } // 非匿名创建多线程 public static void noAnonymity(){ for (int i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3