📄 multithreaddemo1.java
字号:
//Example 1 of Chapter 8
import java.awt.*;
import javax.swing.*;
public class MultiThreadDemo1 extends JFrame
{
private ScrollPane scrollPane;
private JTextArea area;
public MultiThreadDemo1()
{
super( "多线程输出演示" );
getContentPane().setLayout( new BorderLayout() );
scrollPane = new ScrollPane();
area = new JTextArea();
area.setEditable( false );
scrollPane.add( area );
getContentPane().add( scrollPane, BorderLayout.CENTER );
OutputThread no1 = new OutputThread( "Number1" );
OutputThread no2 = new OutputThread( "Number2" );
OutputThread no3 = new OutputThread( "Number3" );
area.append( "主程序启动\n" );
no1.start();
no2.start();
no3.start();
area.append( "主程序结束\n" );
setSize( 300, 240 );
setVisible( true );
}
public static void main(String[] args)
{
MultiThreadDemo1 demo = new MultiThreadDemo1();
demo.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
private class OutputThread extends Thread
{
private int sleepTime;
public OutputThread( String name )
{
super( name );
}
public void run()
{
try {
sleepTime = ( int ) ( Math.random() * 2000 );
area.append( getName() + ":即将休眠" + sleepTime + "毫秒\n" );
Thread.sleep( sleepTime );
sleepTime = ( int ) ( Math.random() * 2000 );
area.append( getName() + ":即将再次休眠" + sleepTime + "毫秒\n" );
Thread.sleep( sleepTime );
}
catch ( InterruptedException exception )
{
exception.printStackTrace();
}
area.append( getName() + ":结束运行\n" );
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -