进程与线程浅析(二)

今天主要介绍一下JAVA中,线程的使用。

首先,总结下java对线程的支持。

在JAVA中,对线程的支持主要体现在一个类(class)和一个接口(interfac)中。

即Thread类,和Runnable接口。

特点:

a)两者皆继承于java.lang包。

b)两者都有一个public void run()方法。提供线程实际工作的代码。

 

其次,介绍一下java中线程的创建和启动

a)线程的创建

Thread()

Thread(String name)

Thread(Runnable target)

Thread(Runnable target, String name)

b)线程的启动

void start()

再次,介绍一下线程的常用方法

a)线程休眠

static void sleep(long millis)

static void sleep(long millis, int nanos)

b)使其他线程等待当前线程终止

void join()

无参数,则其他线程需等当前线程结束才可执行

void join(long millis)

有参数,则设置其他线程等待当前线程的等待时机的阈值

void join(long mllis, int nanos)

两个参数,则更加精确

c)当前线程释放处理器资源

static void yield()

d)获取当前运行的线程引用

static Thread currentThread()

最后,写一段例程

一段介绍

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
public class Fanyoy extends Thread{
 
  
 
  
 
  
 
public void run(){
 
  
 
  System.out.println(getName() + "是一家游戏公司");
 
  
 
  int count = 0;
 
  
 
  boolean isRunning = true;
 
  
 
  while(){
 
  
 
  System.out.println(getName() + "上线" + (++ count) + "部作品");
 
  
 
  if(count == 100)
 
  
 
  {
 
  
 
    isRunning = false;
 
  
 
  }
 
  
 
  if(coun % 10 == 0)
 
      {
 
  
 
    Thread.sleep(1000);
 
  
 
  }
 
  
 
  }
 
  
 
}
 
  
 
public static void main(String[] args){
 
  
 
  Thread fanyoy = new Fanyoy();
 
  
 
  fanyoy.setName("Fanyoy");
 
  
 
  fanyoy.start();
 
        
 
      Thread murong = new Thread(new Murong(), "Murongxiaopifu");
 
       
 
      murong.start();
 
      
 
  
 
}
 
  
 
}
 
   
 
class Murong implements Runnable(
 
  
 
public void run(){
 
  
 
  System.out.println(Thread.currentThread.getName() + "是一个程序员");
 
  
 
  int count = 0;
 
  
 
  boolean isRunning = true;
 
  
 
  while(){
 
  
 
  System.out.println(Thread.currentThread.getName() + "上线" + (++ count) + "部作品");
 
  
 
  if(count == 100)
 
  
 
  {
 
  
 
    isRunning = false;
 
  
 
  }
 
  
 
  if(coun % 10 == 0)
 
      {
 
  
 
    Thread.sleep(1000);
 
  
 
  }
 
  
 
  }
 
  
 
}
 
  
 
      
 
}

 

posted @   慕容小匹夫  阅读(808)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示