Thead基础及两种创建方式
今天本人给大家讲解一下多线程,如有不对的或者讲的不好的可以多多提出,我会进行相应的更改,先提前感谢提出意见的各位了!!!
说说多线程本人自己对它理解的定义:因计算机的CPU支持能够在同一时间执行多于一条线程并发执行的技术我们称它为多线程。 而在一个应用程序中独立运行一个片段的我们叫做“线程”(Thread)而线程有优先级的区别,级别越高的也先执行,并且还分守护和非守护线程,守护线程为其他服务提供服务的线程不能独立运行。当我们JVM中只有守护线程时JVM会退出。
java中实现线程的方法有很多,本人说两种方法:第一种是:继承Thread 第二种是:实现Runnable接口。
写案例之前先说一下这两种方法的区别!!
我相信有很多宝宝们在基础不错的情况下看到这两种方法的叫法,大概知道是怎么回事了。
先说说第一种方式:继承Thread
在java中要实现线程需要依赖于java.lang.Thread类,而Thread类是一个线程类,当我们继承了Thread类后,是需要实现它的run()方法,在主线程的main()里启动它的start()方法,就可以开启线程。
案例:
代码如下

运行结果:

可以看到运行:每次输出的值是不一样的,这就是多线程的缘故,所有的线程轮流使用CPU的使用权,执行平均每个线程占用CPU的时间片,时间片越长,它执行的就越多,优先级越高的线程了,他的时间片也越多,好比我们刚刚写的这个Demo案例一样,时间片的不同,导致他输出的信息顺序时间也有同。
如果还不是很明白,单核的CPU,单个CPU某一个时间点只能执行一个任务,那么就在打个比方,就好比我们一边听歌一边玩游戏电脑都可以一起进行,那是因为CPU的线程运算速度很快,我们肉眼基本发现不了他会有延迟的。
第二种方式:实现Runnable(推荐使用,安全性高,因为是直接在类中创建的一个Thread对象的)
看到实现二字,那就会想到继承,没错。第二种方式就是继承Runnable这个接口类,我们在第一种方式使用的Thread类,它也是实现了Runnable这个接口的,那么案例启。
注意:创建线程对象必须使用Thread这个对象,因为它实现了Runnable这个接口
案例:

运行结果:

下面说一下为什么是创建对象的时候传入的是tr这个类


创建线程的基本用法讲解完毕,又不懂或者不理解的可以在评论区给本人留言
Thead基础及两种创建方式的更多相关文章
- 【转载】 Java中String类型的两种创建方式
本文转载自 https://www.cnblogs.com/fguozhu/articles/2661055.html Java中String是一个特殊的包装类数据有两种创建形式: String s ...
- String变量的两种创建方式
在java中,有两种创建String类型变量的方式: String str01="abc";//第一种方式 String str02=new String("abc&qu ...
- java多线程总结一:线程的两种创建方式及比较
1.线程的概念:线程(thread)是指一个任务从头至尾的执行流,线程提供一个运行任务的机制,对于java而言,一个程序中可以并发的执行多个线程,这些线程可以在多处理器系统上同时运行.当程序作为一个应 ...
- Android中Fragment的两种创建方式
fragment是Activity中用户界面的一个行为或者是一部分.你可以在一个单独的Activity上把多个Fragment组合成为一个多区域的UI,并且可以在多个Activity中再使用.你可以认 ...
- cocos2dx 帧动画的两种创建方式
看了好几天cocos2dx的帧动画,现在才有点眉目,为了高效期间我们一般会用到 精灵帧缓存(CCSpriteFrameCache) 和动画缓存(CCAnimationCache) .大体的操作步骤: ...
- java多线程总结一:线程的两种创建方式及优劣比较
1.通过实现Runnable接口线程创建 (1).定义一个类实现Runnable接口,重写接口中的run()方法.在run()方法中加入具体的任务代码或处理逻辑. (2).创建Runnable接口实现 ...
- python 多进程的两种创建方式
Python中使用线程有两种方式:函数或者用类来包装线程对象. 第一种---------函数 菜鸟教程的我没看懂,说说我自己懂的----看视频理解的 import time import thread ...
- java多线程总结:线程的两种创建方式及优劣比较
1.通过实现Runnable接口线程创建 (1).定义一个类实现Runnable接口,重写接口中的run()方法.在run()方法中加入具体的任务代码或处理逻辑. (2).创建Runnable接口实现 ...
- 【重学Java】多线程基础(三种创建方式,线程安全,生产者消费者)
实现多线程 简单了解多线程[理解] 是指从软件或者硬件上实现多个线程并发执行的技术. 具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能. 并发和并行[理解] 并行:在同一时刻, ...
随机推荐
- Nearby Bicycles
With fast developments of information and communication technology, many cities today have establish ...
- [LC] 96. Unique Binary Search Trees
Given n, how many structurally unique BST's (binary search trees) that store values 1 ... n? Example ...
- htaccess 伪静态的规则
利用htaccess文件可以很好的进行站点伪静态,并且形成的目标地址与真正的静态页面几乎一模一样,如abc.html等,伪静态可以非常好的结合SEO来提高站点的排名,并且也能给人一种稳定的印象. 由于 ...
- vivado操作基本问题
1.zynq开发板的构造以及推崇的设计理念 设计推崇的理念是设计有知识产权的可重用的IP模块. 2.操作过程中遇到的问题以及解决方法 (1)综合速度慢解决方案: 我们都知道Vivado编译起来相当的慢 ...
- 最初级的ajax程序
该文章实现的ajax功能是实现了在<span>上面添加内容 jsp代码 <html><head><title>Ajax</title>< ...
- stress施压案例分析——cpu、io、mem【命令分析】
stress施压命令分析 一.stress --cpu 1 --timeout 600 分析现象?负载为啥这么高?top命令查看用户进程消耗的cpu过高(stress进程消耗的) 分析现象,可以看出 ...
- Docker私有仓库管理
docker load -i registry.tar.gz docker run -d -p 5000:5000 --restart=always --name registry -v /opt/m ...
- Widgets学习
ListView ListView RecyclerView RecyclerView ExpandableListView 关闭箭头 elvMsg.setGroupIndicator(null); ...
- Ionic3学习笔记(八)使iOS端、Android端 Navbar 透明化
本文为原创文章,转载请标明出处 若要使iOS端 Navbar 透明,只需要给 ion-navbar 添加 transparent 属性,但是Android端依旧会有一条border在,所以再给 ion ...
- python对csv读写
1.csv文件读取 with open("C:\\Users\\Administrator\\Desktop\\test.csv", 'r', encoding='utf-8') ...