当前位置:网站首页>如何创建线程
如何创建线程
2022-07-05 22:17:00 【爱敲代码的小高】
目录
一:认识线程
说到线程,我们就不得不提进程。较为官方的定义,进程是系统分配资源的最小单位,这个资源可以是cpu、内存等等。线程是系统调度的最小单位。并且同一个进程下的各个线程之间是可以相互共享资源的。
具体来说,举个例子,我们平时中午家里妈妈出去买菜,那么买菜就可以算是一个进程,紧接着妈妈让我们去卖鱼,她去买肉,那么这里的卖鱼和卖肉分别是买菜进程下的两个两个线程,那么相应的一些资源,比如用于买菜的钱,买鱼和买肉的时候都可以用。并且这样分头行动比和妈妈一起买完鱼再去买肉,相对的速度要快很对。
于此,我们发现,多线程可以提升效率。
二:如何构造线程
1:继承Thread类,重写run方法
代码如下
class MyThread extends Thread{
@Override
public void run() {
System.out.println("hello,Thread");
}
}
public class ThreadDemo1 {
public static void main(String[] args) {
Thread t =new MyThread();
t.start();
t.run();
}
}2:实现runnable接口,重写run方法
代码如下
class MyRunnable implements Runnable{
@Override
public void run() {
while (true){
System.out.println("hello,Thread");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class ThreadDemo3 {
public static void main(String[] args) {
Thread t =new Thread(new MyRunnable());
t.start();
}
}
3:使用lambda表达式创建runnable子类对象
代码如下
public class ThreadDemo6 {
public static void main(String[] args) {
Thread t =new Thread(() ->{
while (true){
System.out.println("hello thread");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
t.start();
}
}
此外,也可以用匿名内部类的方式创建Thread和Runnable对象
4匿名内部类方法
1:Thread
public class ThreadDemo4 {
public static void main(String[] args) {
//这个语法就是匿名内部类
//相当于创建了一个匿名的类,这个类继承了Thread
//此处咱们new的实例,其实就是new了这个新的子类的实例
Thread t =new Thread(){
@Override
public void run() {
while(true){
System.out.println("hello,Thread");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
t.start();
}
}
2:Runnable
public class ThreadDemo5 {
public static void main(String[] args) {
Thread t =new Thread(new Runnable() {
@Override
public void run() {
while (true){
System.out.println("hello thread"); try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
t.start();
}
}以上就是线程进程的一些区别和联系以及创建线程的几种方法,算是有五种吧。
边栏推荐
- CA certificate trampled pit
- Analyse des risques liés aux liaisons de microservices
- 极狐公司官方澄清声明
- 如何快速体验OneOS
- Technology cloud report won the special contribution award for the 10th anniversary of 2013-2022 of the "cloud Ding Award" of the global cloud computing conference
- ICMP introduction
- Multiplexing of Oracle control files
- MySQL服务莫名宕机的解决方案
- 1.3 years of work experience, double non naked resignation agency face-to-face experience [already employed]
- The difference between MVVM and MVC
猜你喜欢

Recovery technology with checkpoints

多家呼吸机巨头产品近期被一级召回 呼吸机市场仍在增量竞争

【愚公系列】2022年7月 Go教学课程 004-Go代码注释

Talking about MySQL index

Summary of concurrency control

Sentinel production environment practice (I)

Leetcode simple question: find the nearest point with the same X or Y coordinate

Business learning of mall order module

2022-07-05:给定一个数组,想随时查询任何范围上的最大值。 如果只是根据初始数组建立、并且以后没有修改, 那么RMQ方法比线段树方法好实现,时间复杂度O(N*logN),额外空间复杂度O(N*

【愚公系列】2022年7月 Go教学课程 003-IDE的安装和基本使用
随机推荐
Talking about MySQL index
How to use tensorflow2 for cat and dog classification and recognition
Pl/sql basic case
Some tutorials install the database on ubantu so as not to occupy computer memory?
Leetcode simple question: the minimum cost of buying candy at a discount
Common interview questions of JVM manufacturers
A substring with a length of three and different characters in the leetcode simple question
Create a virtual machine on VMware (system not installed)
Decorator learning 01
Unique occurrence times of leetcode simple questions
The Blue Bridge Cup web application development simulation competition is open for the first time! Contestants fast forward!
Concurrency control of performance tuning methodology
The simple problem of leetcode is to split a string into several groups of length K
ESP32 hosted
Depth first DFS and breadth first BFS -- traversing adjacency tables
Livelocks and deadlocks of concurrency control
Kubernetes Administrator certification (CKA) exam notes (IV)
The real situation of programmers
实战:fabric 用户证书吊销操作流程
Countdown to 92 days, the strategy for the provincial preparation of the Blue Bridge Cup is coming~