Java -- Thread习题(1)

来源:互联网 发布:网络电影痞子兵王 编辑:程序博客网 时间:2024/06/14 10:59
/**
 * 创建一个子线程,完成1-100之间自然数输出。同时主线程也执行同样的操作
 * 
 * 创建多线程的第一种方式:继承java.lang.Thread类
 */


public class Test_Thread {
// 3.创建一个子类的对象
public static void main(String[] args) {
SubThread st = new SubThread();
SubThread st2 = new SubThread();
/*4.调用线程的start()方法,有两个作用:
*(1)启动此线程
*(2)调用相应的run()方法
*/
st.start();
st2.start();
// 一个线程只能够执行一次start()
// st.run(); //没启动多线程,只有一个线程
// 不能通过Tread实现类的对象直接调run()去启动一个线程
for (int i = 1; i < 100; i++) {
System.out.println(Thread.currentThread().getName() + ":" + i);
}
}


}


// 1.创建一个继承于Thread的子类
class SubThread extends Thread{
// 2.重写Thread类的run()方法,方法内实现此子线程要完成的功能
public void run(){

for(int i = 1; i <= 100 ; i++){
System.out.println(Thread.currentThread().getName() + ":" + i);//1-100之间自然数输出
}
}


}





public class Test_practice {
// 创建两个子线程,让其中一个输出1-100之间的偶数,另一个输出1-100之间的奇数
public static void main(String[] args) {
hhh h = new hhh();
ppp p = new ppp();

h.setName("偶数=");
h.start();

p.setName("奇数==");
p.start();

// 匿名类
new Thread(){
public void run(){
System.out.println("我是帅哥!!!!!");
}
}.start();
}
}


class hhh extends Thread{
public void run() {
for (int i = 0; i <= 100; i++) {
if(i % 2 == 0){
System.out.println(Thread.currentThread().getName() + i);
}
}
}
}

class ppp extends Thread{
public void run(){
for (int i = 0; i <= 100; i++) {
if(i % 2 != 0){
System.out.println(Thread.currentThread().getName() + i);
}
}
}
}





//模拟火车站售票窗口,开启三个窗口售票,总票为100张
class Window extends Thread{
static int ticket = 100;

public void run(){
while(true){
if(ticket > 0){
System.out.println(Thread.currentThread().getName() + "售票,票号:" + ticket--);
}else{
break;
}
}
}
}
public class Test_Window {
public static void main(String[] args) {
Window w1 = new Window();
Window w2 = new Window();
Window w3 = new Window();

w1.setName("窗口1");
w2.setName("窗口2");
w3.setName("窗口3");

w1.start();
w2.start();
w3.start();

}
}

原创粉丝点击