当前位置: 首页 > news >正文

深圳手机网站建设价格万网app下载

深圳手机网站建设价格,万网app下载,做科技公司的网站公司,湖南网站建设 要上磐石网络文章目录前言线程创建1.继承Thread类重写run()方法如何查看程序中的线程?2.实现Runnable接口3.使用匿名内部类,继承Thread4.使用匿名内部类,实现Runnable5.⭐使用Lambda表达式,创建线程(重要)Thread 的常见构造方法总结前言 在这里主要补充说明一些问题,方便更好地理解下面的…

文章目录

  • 前言
  • 线程创建
    • 1.继承Thread类重写run()方法
  • 如何查看程序中的线程?
    • 2.实现Runnable接口
    • 3.使用匿名内部类,继承Thread
    • 4.使用匿名内部类,实现Runnable
    • 5.⭐使用Lambda表达式,创建线程(重要)
  • Thread 的常见构造方法
  • 总结

前言

在这里主要补充说明一些问题,方便更好地理解下面的内容:

1.关于多线程存在有什么意义以及多线程存在有什么好处?

多线程编程主要是为了更好地解决并发编程这个问题,因为创建销毁调度一个进程开销比较大(消耗资源多和速度慢),进程之所以开销比较大,主要是在"资源的分配和回收上"
而线程也被称为"轻量级进程",因此在解决并发编程这个问题上,线程的创建销毁调度的更快一些.

2.线程和进程的关系

一个进程可以有一个线程,也可以有多个线程,但是不能没有线程
在启动线程时,只有第一个线程的开销比较大,后面的开销就很小了
在不支持线程的操作系统中,进程既是资源分配的基本单位,也是调度的基本单位;在拥有线程的操作系统中,线程是调度的基本单位,而进程是资源分配的基本单位
系统级线程的切换需要内核的支持,用户级线程的切换不需要内核的支持。同一进程中的线程共享同一物理内存空间。

3.增加线程的数量,能否提高执行速度

增加线程的数量不一定能提高速度,因为CPU核心数是有限的,如果创建线程太多,不小的开销主要在调度上浪费了

4.其它的一些知识点

线程就是独立的执行路径
main()线程也称为主线程,为系统的入口,执行整个程序,由JVM进行创建
程序运行时,即使没有手动创建线程,后台也会有多个线程,如:主线程,gc线程
在一个进程中,线程是抢占式执行,各个线程的执行顺序是不确定的

Java多线程中,最核心的类就是Thread类,而使用Thread类不需要导入任何类型的包,因为它是在java.lang包下,默认是导入的 线程主要是为了更好地解决并发编程的问题

线程创建

线程的创建有5种方法,下面为大家一一介绍这些创建线程的方法

1.继承Thread类重写run()方法

//创建线程 方法1:继承Thread 重写run方法
class MyThread extends Thread{@Overridepublic void run() {while(true){System.out.println("run方法在执行");}}
}
public class ThreadDemo1 {public static void main(String[] args) {Thread thread = new MyThread();thread.start();//这里要注意while(true){System.out.println("main方法在执行");}}
}

代码执行的一小段结果如下:
在这里插入图片描述

在创建好thread这个实例对象之后,调用的方法是start方法,而不是run方法,调用start方法是为了创建一个线程,由这个新的线程去调用thread.run方法,在run方法执行完毕后,创建的这个新的线程就自动销毁了,如果直接调用thread方法,是不会有新的线程的
程序执行流程图区别如下:
在这里插入图片描述
对于上述代码来说,如果只是调用thread.run()方法,那么程序只会一直打印"run方法在执行",不可能会打印"main()方法在执行"

如何查看程序中的线程?

为了更好地看到线程,Java也为我们提供了方法,我们可以使用jdk中自带的工具jconsole来查看当前进程中的所有线程
在查看线程时要运行你想要查看程序的main方法
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果打开jconsole.exe之后什么都看不到,可以尝试以管理员方式运行

2.实现Runnable接口

实现Runnable接口,要重写的方法也是run()方法

//Runnable 描述一个"要执行的任务"
class MyRunnable implements Runnable{@Overridepublic void run() {System.out.println("hello Thread");}
}
public class TreadDemo2 {public static void main(String[] args) {Runnable runnable = new MyRunnable();//描述了一个任务Thread thread = new Thread(runnable);//把任务交给线程来执行thread.start();}
}

这样的写法最大的好处就是解耦合,目的是为了将任务和线程之间分开

3.使用匿名内部类,继承Thread

public class ThreadDemo3 {public static void main(String[] args) {Thread thread = new Thread(){@Overridepublic void run() {System.out.println("hello thread");}};thread.start();}
}
  • 这里new Thread() 是创建了一个Thread的子类,没有名字,所以是匿名,并让thread指向这个子类对象

4.使用匿名内部类,实现Runnable

public class ThreadDemo4 {public static void main(String[] args) {Thread thread = new Thread(new Runnable() {@Overridepublic void run() {System.out.println("hello thread");}});//注意()thread.start();}
}
  • 这个写法是创建了一个子类,实现了Runnable接口,同时创建了类的实例,并传给Thread的构造方法

5.⭐使用Lambda表达式,创建线程(重要)

这种创建线程的方法最简单,在平时使用的时候,使用Lambda表达式创建线程是最常用的,所以这种线程的创建方式要务必掌握!!!

public class ThreadDemo5 {public static void main(String[] args) {Thread thread = new Thread(()->{System.out.println("hello thread");});thread.start();}
}

Thread 的常见构造方法

Thread 的常见构造方法常见的构造方法有四种

构造方法说明
Thread()创建线程对象
Thread(Runnable target)使用 Runnable 对象创建线程对象
Thread(String name)创建线程对象,并命名
Thread(Runnable target, String name)使用 Runnable 对象创建线程对象,并命名

这里着重说一下第三种和第四种构造方法, 这两种构造方法可以给线程命名.给线程命名的最大好处就是当程序中创建了很多的线程,而程序中地某个线程中出现问题,可以更好地进行调试,更快地找到问题所在.

总结

  • 掌握线程创建的方法,特别是用Lambda表达式创建线程的方法(最简单也最常用)
  • 掌握start()和run()方法之间的区别

在这里插入图片描述

http://www.hkea.cn/news/353402/

相关文章:

  • 长春做网站公司seo关键词排名优化软件怎么选
  • 网站开发未按合同约定工期完工seo关键词排名怎么提升
  • 创可贴app海报制作网站百度seo优化方法
  • 龙岗品牌网站建设2024年新闻摘抄
  • 南阳住房和城乡建设厅网站招聘网站排名
  • 如何做网站活动封面建站的公司
  • 温州网站建设培训营销推广方案包括哪些内容
  • 厦门 建网站商业软文案例
  • wordpress读者墙站长之家seo工具包
  • 网站建设哪家好灵活苏州久远网络北京搜索引擎关键词优化
  • 网站优化怎么做 有什么技巧东莞seo建站
  • 什么网站可以做游戏机疫情最新数据消息
  • 企业网站开发报价单巩义网络推广
  • 网站开发技术交流群免费域名申请网站
  • 手机网站一键分享怎么知道自己的域名
  • 做网站 做好把我踢开北京网站搭建哪家好
  • 网站如何做引流刷外链网站
  • wordpress 站点地址关注公众号一单一结兼职
  • 合肥网站建设第一品牌个人seo外包
  • 省心的免费建站服务热线四川seo关键词工具
  • 网站总是跳转dede58seo对网络推广的作用是
  • seo排名怎么提高seo排名优化软件有用
  • 江门论坛建站模板黑帽seo联系方式
  • 政府网站信息内容建设专项检查搜索引擎排名优化seo课后题
  • 个人做的好的淘宝客网站软文营销推广
  • 城乡建设委员会网站河北seo推广公司
  • 某网站栏目策划2022十大热点事件及评析
  • 德清网站建设中心优化大师官方免费下载
  • 生日网页制作免费网站制作代做网页设计平台
  • 学校类网站特点游戏优化大师官网