今天本人给大家讲解一下多线程,如有不对的或者讲的不好的可以多多提出,我会进行相应的更改,先提前感谢提出意见的各位了!!!

说说多线程本人自己对它理解的定义:因计算机的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基础及两种创建方式的更多相关文章

  1. 【转载】 Java中String类型的两种创建方式

    本文转载自 https://www.cnblogs.com/fguozhu/articles/2661055.html Java中String是一个特殊的包装类数据有两种创建形式: String s ...

  2. String变量的两种创建方式

    在java中,有两种创建String类型变量的方式: String str01="abc";//第一种方式 String str02=new String("abc&qu ...

  3. java多线程总结一:线程的两种创建方式及比较

    1.线程的概念:线程(thread)是指一个任务从头至尾的执行流,线程提供一个运行任务的机制,对于java而言,一个程序中可以并发的执行多个线程,这些线程可以在多处理器系统上同时运行.当程序作为一个应 ...

  4. Android中Fragment的两种创建方式

    fragment是Activity中用户界面的一个行为或者是一部分.你可以在一个单独的Activity上把多个Fragment组合成为一个多区域的UI,并且可以在多个Activity中再使用.你可以认 ...

  5. cocos2dx 帧动画的两种创建方式

    看了好几天cocos2dx的帧动画,现在才有点眉目,为了高效期间我们一般会用到 精灵帧缓存(CCSpriteFrameCache) 和动画缓存(CCAnimationCache) .大体的操作步骤: ...

  6. java多线程总结一:线程的两种创建方式及优劣比较

    1.通过实现Runnable接口线程创建 (1).定义一个类实现Runnable接口,重写接口中的run()方法.在run()方法中加入具体的任务代码或处理逻辑. (2).创建Runnable接口实现 ...

  7. python 多进程的两种创建方式

    Python中使用线程有两种方式:函数或者用类来包装线程对象. 第一种---------函数 菜鸟教程的我没看懂,说说我自己懂的----看视频理解的 import time import thread ...

  8. java多线程总结:线程的两种创建方式及优劣比较

    1.通过实现Runnable接口线程创建 (1).定义一个类实现Runnable接口,重写接口中的run()方法.在run()方法中加入具体的任务代码或处理逻辑. (2).创建Runnable接口实现 ...

  9. 【重学Java】多线程基础(三种创建方式,线程安全,生产者消费者)

    实现多线程 简单了解多线程[理解] 是指从软件或者硬件上实现多个线程并发执行的技术. 具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能. 并发和并行[理解] 并行:在同一时刻, ...

随机推荐

  1. F5 BIG-IP LTM负载均衡策略

    standard 模式 可以很好的 防止 DDOS攻击 轮询设置是在POOL 中设置 按比率设置是在Node节点中设置

  2. POJ3264 Balanced Lineup [RMQ模板]

    题意:有n头牛,输入他们的身高,求某区间身高的极值的差(max-min), 用RMQ模板,同时构造求极大值和极小值的两个数组. //poj3264 #include <iostream> ...

  3. 推荐几款开源的js日期控件

    做为一个正规的网站,经常需要一些日期或时间的筛选,所以我们今天就推荐二十多款javascript的js日期/时间筛选插件.个个经典,绝对有你需要的. My97DatePicker ,国人开发的一款js ...

  4. HTTP协议八种请求类型介绍

    HTTP 协议中共定义了八种方法或者叫“动作”来表明对 Request-URI 指定的资源的不同操作方式,具体介绍如下: OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法.也可以利用向W ...

  5. linux一些基本操作-防火墙操作

    防火墙操作 一.service方式 查看防火墙状态: [root@centos6 ~]# service iptables status iptables:未运行防火墙. 开启防火墙: [root@c ...

  6. 《时间线》:WWT 数字宇宙,虚拟星空

    李北辰/文 王尔德说:我们生活在阴沟里,却仍有人仰望星空.如今,这句感叹依旧代表某种程度的正确,但这位19世纪的英国绅士有所不知:在一百多年后的东方"帝都",当困于阴沟中的年轻人们 ...

  7. 三步教你实现MyEclipse的debug远程调试

    MyEclipse远程调试程序是个神奇的东西,有时一个项目本地运行没问题可放到服务器上,同样的条件就是结果不一样:有时服务器上工程出点问题需要远程调测.于是就灰常想看一下程序在远程运行时候的状态,希望 ...

  8. springboot 配置热部署 及 热部署后依旧是404的坑

    springboot配置热部署的教程网上一大堆: 个人喜欢这种方式: https://www.cnblogs.com/winner-0715/p/6666579.html 本文主要强调的是,大家如果配 ...

  9. python的IO

    格式化输出 格式化输出是指通过print()等函数向指定的地方(比如屏幕)输出指定格式的内容 格式: age = 18 name = "xiaohua" print("我 ...

  10. 在python中使用json

    在服务器和客户端的数据交互的时候,要找到一种数据格式,服务端好处理,客户端也好处理,这种数据格式应该是一种统一的标准,不管在哪里端处理起来都是统一的,现在这种数据格式非常的多,比如最早的xml,再后来 ...