这样不知道是不是楼主要的...作者: 快乐ABC 时间: 2015-3-26 21:36
class MyThread implements Runnable
{
private int count = 0;//用于记录线程执行的次数
private int no ;//记录线程的线程号
private static int num = 0;//共享数据,用于记录创建了几个线程
MyThread()
{
num++;//创建一个线程计数器自增1
this.no = num ;//每次创建一个线程给其分配一个线程号
if(num==4)
System.out.println("创建线程4");
}
public void run()
{
while(count<6)
{
System.out.println("线程"+this.no+":"+"计数"+(++count));
}
}
}
class MyThreadDemo
{
public static void main(String[] args)
{
for(int i=0;i<5;i++)
{
new Thread(new MyThread()).start();
}
}
}
------------------------------------------------------------------------------
运行结果:
import java.util.Enumeration;
import java.util.Vector;
/*写一个线程类MyThread,该线程实现了Runnable接口,写一个main方法,用for循环创建5个线程对象。
需求如下:
① 利用线程类的构造函数输出:"创建线程4"。
(备注:当创建一个线程的时候,标记为1,再次创建一个线程的时候,标记为2,
所以输出的"创建线程4"就是创建的第四个线程)
② 在run方法中输出:“线程X :计数Y”,当执行次数达到6次的时候,退出。
(备注:其中“线程X”为第X个线程,“计数Y”为该线程的run方法执行了多少次) */
public class Day1_ClassTest2 {
public static void main(String[] args) {
MyThread mt = new MyThread();
MyThread mt1 = new MyThread();
MyThread mt2 = new MyThread();
MyThread mt3 = new MyThread();
MyThread mt4 = new MyThread();
new Thread(mt, mt.name).start();
new Thread(mt1, mt1.name).start();
new Thread(mt2, mt2.name).start();
new Thread(mt3, mt3.name).start();
new Thread(mt4, mt4.name).start();
}
}
class MyThread implements Runnable{
String name;
static int i = 1;
static int y=1;
static Object o = new Object();
public MyThread(){
name = "线程"+i;
System.out.println("创建线程"+i);
i++;
}
public void run(){
while(y<7){
synchronized(o){
if(y>=7){
return;
}