20211121 北京 java线程----------概念与创建

20211121 北京 java线程----------概念与创建,第1张

2021/11/21 北京 java线程----------概念与创建

程序(program)是一段静态的代码。

进程是正在运行的一个程序,是动态的,进程有它自己的产生,存在和消亡过程。、


线程的创建,继承Thread类

 上图说的很明白了吧,咱再给你演示一下

1.做好准备工作,把我们自己创建的分线程是要做啥的,给写到run()方法里。

 2.在主线程,main方法里创建分线程并让分线程运行起来

 至此,完结散花。


start()方法是做啥的呢?启动当前线程(谁调这个方法谁就是当前线程),并自动调用当前线程的run()方法。

那么问题来了,可不可以直接调用run()?肯定不可以。那我要是就调了,会咋样

t1.run();//没有开启新的线程,只是单纯的对象调用方法

那我这个线程启动了之后,我再调start()方法,还是那个t1,可以吗,不可以。不能让已经start()的线程去再启动。你可以去new 一个新的t2,用t2.start()

t1.start();
t1.start(); //用t1调用俩次start(),会报异常

接着我们可以使用匿名内部类的方式,优化一下上面的代码.

不得不说,人类越来越会玩了,看着确实优雅太多了

 


有了线程,也开启了,接这看看常用的一些方法,大饱眼福

先来不是那么难理解的:

 再来一点稍微有水平的

 你会发现这些方法使让线程更加灵活了,让我们能更好的去理解这个线程,去控制它了。

 


线程的调度,人性化设计。凡是人性化设计的那就是很合理的,很容易共鸣。

看到这个时间片,想到了我大学学的知识,在这里看到了熟悉的方波。同优先级就乖乖排队,高优先级的会具有更高的概率获得cpu执行权。

 


再赐予你一件法宝图: 

比方说,下面这样的 把分线程优先级设置到最高,主线程优先级设置到最低。

 


对线程有了初步的概念后,我们还有一种更好的方式去创建线程,我们上面是继承Thread类。

这第二种方式就是实现Runnable接口

准备工作: 创建一个类实现Runnable接口

 在主线程main方法里;注意线程t1是怎么来的。

Thread t1=new Thread(mThread)//把实现类的对象作为参数传入Thread构造器

 


那么,实现Runnable接口的方式好在哪里了?

因为java单继承的限制,继承了Thread类,就没有办法继承别的类了。

而且用实现Runnable接口的方式更适合处理多个线程有共享数据的情况,用它就完事。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5574833.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存