进程:
线程:
进程与线程区别:
线程使用场合:
实现多线程有几种方法?
三种,
1.继承Thread类,重写run函数
2.实现Runnable接口,重写run函数
3.实现Callable接口,重写call函数
thread:
public class testThread {
/**
* 测试多线程并发
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Thread t1 = new myThread();
Thread t2 = new myThread();
t1.start();
t2.start();
}
}
/*
* 线程
*/
class myThread extends Thread{
public void run(){
for(int i = 1; i <= 100; i++){
System.out.println(i);
}
}
}
runnable:
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class testRunnable extends JFrame implements Runnable{
/**
* 测试runnable
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
testRunnable r = new testRunnable();
r.setSize(300,300);
r.setVisible(true);
r.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Thread t = new Thread(r);
t.start();
}
public void run(){
int i = 0;
JPanel panel = new JPanel();
panel.setSize(300,300);
this.setContentPane(panel);
while(true){
i = i == 0? 1:0;
if(i == 0){
panel.setBackground(Color.BLACK);
}else{
panel.setBackground(Color.YELLOW);
}
}
}
}
使用匿名内部类创建线程:
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class testInnerThread {
/**
* 使用匿名内部类方式创建线程
* @par