public class helloworld { public static void main(String[] args) { helloworld hw = new helloworld(); hw.xx(); } public void xx(){ new Thread(new tt()).start(); } private class tt implements Runnable{ public void run() { r1(); r2(); r3(); r4(); r5(); } } public void r1(){ System.out.println("r1"); } public void r2(){ System.out.println("r2"); } public void r3(){ System.out.println("r3"); } public void r4(){ System.out.println("r4"); } public void r5(){ System.out.println("r5"); }
import java.lang.Thread;class ThreadDemo { public static void main(String[] args) { ThreadTest t = new ThreadTest(); new Thread(t,"t1").start new Thread(t,"t2").start();// new Thread(t,"t3").start();// new Thread(t,"t4").start();// new Thread(t,"t5").start();//
如果都没有,那就建立5个,然后一起run吧 奇怪的需求。
public class helloworld
{
public static void main(String[] args)
{
helloworld hw = new helloworld();
hw.xx();
}
public void xx(){
new Thread(new tt()).start();
}
private class tt implements Runnable{
public void run() {
r1();
r2();
r3();
r4();
r5();
}
}
public void r1(){
System.out.println("r1");
}
public void r2(){
System.out.println("r2");
}
public void r3(){
System.out.println("r3");
}
public void r4(){
System.out.println("r4");
}
public void r5(){
System.out.println("r5");
}
}是这样吗?
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
/**
*
* @author East(张栋芳)
*
* 2008-6-8
*/
public class PenguinTest extends JPanel implements Runnable{
/**线程penguinRunner: 控制企鹅动画
* 线程leaveRunner: 控制枫叶动画
* 线程startRunner: 拉开序幕,显示画面
* 线程ndRunner: 落下序幕
* 线程DownRunner:用于控制何时落下序幕
*
* penguinImage[]数组用于存储构成企鹅动画的各帧图像
* leave: 代表枫叶图像
* current: 企鹅动画当前帧的索引
* x, y :企鹅图像的起始横,纵坐标
* z: 枫叶图像的起始横坐标
* w, v : 左右子序幕的宽度
*/
private Thread penguinRunner,
leaveRunner,
startRunner,
endRunner,
DownRunner;
private Image penguinImage[],leave;
private int current=0,x=-10,y=200,z=600,w=300,v=300;
public PenguinTest(){
super();
setBackground(Color.black);
//加载构成企鹅动画的各帧图像
penguinImage=new Image[3];
String imgSrc[]={"image/right1.gif","image/right2.gif","image/right3.gif"};
//实现图像缓冲
MediaTracker track=new MediaTracker(this);
Toolkit kit=Toolkit.getDefaultToolkit();
for(int i=0;i<imgSrc.length;i++){
penguinImage[i]=kit.getImage(imgSrc[i]);
track.addImage(penguinImage[i],i);
}
//加载枫叶图像
leave=kit.getImage("image/change.gif");
track.addImage(leave,3);
try{
track.waitForAll();
}catch(Exception e){
e.printStackTrace();
}
//拉开序幕
if(startRunner==null){
startRunner=new Thread(this);
startRunner.start();
}
//启动线程DownRunner,用于监控何时启动线程runner3落下序幕
if(DownRunner==null)
{
DownRunner=new Thread(this);
DownRunner.start();
}
}
//绘制动画
public void paintComponent(Graphics comp){
Graphics2D comp2D=(Graphics2D)comp;
comp2D.setColor(getBackground());
comp2D.fillRect(0,0,getSize().width,getSize().height);
////绘制枫叶
if(leaveRunner!=null){
if(leave!=null){
comp2D.drawImage(leave,10+z,20,this);
}
}
if(penguinRunner!=null){
//绘制太阳,太阳运行轨迹为抛物线
comp2D.setColor(Color.green);
double temp=0.001211*(-30+x-300)*(-30+x-300);
int temp1=(int)temp;
comp2D.fillOval(-30+x,temp1,60,60);
//绘制企鹅
if(penguinImage[current]!=null)
comp2D.drawImage(penguinImage[current],x,y,this);
//绘制企鹅过河时所用的划板
comp2D.setColor(Color.red);
comp2D.drawLine(x-20,y+30,x+50,y+30);
//绘制左右码头
comp2D.setColor(Color.cyan);
comp2D.fillRect(0,230,130,70);
comp2D.fillRect(470,230,130,70);
//绘制河水波纹
comp2D.setColor(Color.red);
BasicStroke pen=new BasicStroke(2F,BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND);
for(int ax=130;ax<470;ax+=10){
for(int ay=250;ay<300;ay+=10){
Arc2D.Float wave=new Arc2D.Float(ax,ay,10,10,0,-180,Arc2D.OPEN);
comp2D.draw(wave);
}
}
}
//绘制序幕(拉开)
if(startRunner!=null){
comp2D.setColor(Color.blue);
comp2D.fillRect(0,0,w,600);
comp2D.setColor(Color.yellow);
comp2D.fillRect(v,0,600-v,600);
}
//绘制序幕(落下)
if(endRunner!=null){
comp2D.setColor(Color.blue);
comp2D.fillRect(0,0,w,600);
comp2D.setColor(Color.yellow);
comp2D.fillRect(v,0,600-v,600);
}
}
public void run(){
//绘制企鹅
while(Thread.currentThread()==penguinRunner){
walk(-10,150);
jump();
walk(x,640);
}
//绘制枫叶
while(Thread.currentThread()==leaveRunner){
z=z-1;
if(z<-150)
z=600;
repaint();
pause(30);
}
//拉开序幕
while(Thread.currentThread()==startRunner){
if(w>-15)
w--;
if(v<615)
v++;
repaint();
pause(50);
//已经拉开序幕, 动画开始: 企鹅开始从左到右行走,枫叶开始从右到左移动
if((w<-10)&&(v>610)){
penguinRunner=new Thread(this);
leaveRunner=new Thread(this);
penguinRunner.start();
leaveRunner.start();
startRunner=null;
}
}
// //落下序幕
while(Thread.currentThread()==endRunner){
if(w<300)
w++;
if(v>300)
v--;
repaint();
pause(50);
}
//确定何时应该落下序幕
while(Thread.currentThread()==DownRunner)
{
pause(100000);
penguinRunner=null;
leaveRunner=null;
startRunner=null;
endRunner=new Thread(this);
endRunner.start();
DownRunner=null;
}
}
//控制企鹅水平行走轨迹
private void walk(int start,int end){
int show=0;
for(int i=start;i<end;i=i+5){
x=i;
current=show;
repaint();
pause(150);
show++;
if(show>2)
show=0;
}
}
private void jump(){
int moveX=2;
int moveY=-3;
current=2;
while(true){
x+=moveX;
y+=moveY;
if(y<100){
moveY*=-1;
continue;
}
if(y>200){
moveY*=-1;
continue;
}
if(x>420)
break;
repaint();
pause(150);
}
}
//设置线程休眠时间
private void pause(int time)
{
try
{
Thread.sleep(time);
} catch (InterruptedException e) { }
}
}
{
public static void main(String[] args)
{
ThreadTest t = new ThreadTest();
new Thread(t,"t1").start
new Thread(t,"t2").start();//
new Thread(t,"t3").start();//
new Thread(t,"t4").start();//
new Thread(t,"t5").start();//
}
}class ThreadTest implements Runnable
{ public void run()
{
if(Thread.currentThread().getName().compareTo("t1") == 0)
sale1(); if(Thread.currentThread().getName().compareTo("t1") == 1)
sale2();
if(Thread.currentThread().getName().compareTo("t1") == 2)
sale3();
if(Thread.currentThread().getName().compareTo("t1") == 3)
sale4();
if(Thread.currentThread().getName().compareTo("t1") == 4)
sale5(); } public void sale1()
{
System.out.println(Thread.currentThread().getName());
}
public void sale2()
{
System.out.println(Thread.currentThread().getName);
}public void sale3()
{
System.out.println(Thread.currentThread().getName);
}public void sale4()
{
System.out.println(Thread.currentThread().getName())
}public void sale5()
{
System.out.println(Thread.currentThread().getName);
}
}