什么是线程?线程和进程有什么区别?
进程是计算机上占有空间资源和cpu时间的独立运行的单元.线程可以认为是轻量级的进程.
线程和进程都是并行思想的体现.计算机的并行就是在一段时间内同时运行几个独立的任务.并行可以分为并发和同时,并发就是几个任务都在执行但是交替执行,如回合制游戏,同时就是一起执行,如moba类游戏.
拿食堂为例,食堂有打饭的,打菜的,打汤的三种类型的窗口,每种类型又有多个窗口排队,打饭的,打菜的,打汤的就是食堂的三个不同任务,彼此独立,类比进程,相同类型的多个窗口可以认为是多个窗口,他们从相同的盘子里打菜,有独立的地方也有公共的地方.
Java中,Task是线程的任务,Thread是线程控制任务执行的机制.
一个任务需要实现Runnable接口,run()方法
Thread 调用start()方法执行任务
class Task implements Runnable{
@override
run(){
//statements
}
}
Thread thread=new Thread(task).start();
用线程显示闪烁的文本
package spider;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.util.Duration;
import javafx.application.*;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.scene.*;
import javafx.animation.*;
public class TextDemo extends Application{
public static void main(String []args) {
Application.launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
// TODO Auto-generated method stub
TextArea tx=new TextArea();
tx.setEditable(false);
//Thread t=
new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
try {
String s="Programming is happy";
while(true) {
if(s.compareTo(tx.getText())==0)
tx.setText("hey hey");
else tx.setText(s);
Thread.sleep(1000);//线程休眠
}
}catch (Exception ex) {
ex.printStackTrace();
}
}
}).start()
;
//t.start();
//Timeline tl=new Timeline(new KeyFrame(new ,tx.setText("a")));
Pane pane=new Pane();
pane.getChildren().add(tx);
Scene scene=new Scene(pane);
primaryStage.setScene(scene);
primaryStage.show();
}
}