Thread 和 Task

什么是线程?线程和进程有什么区别?
进程是计算机上占有空间资源和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();
	}

}

posted @ 2019-08-04 15:13  少年留不住  阅读(383)  评论(0编辑  收藏  举报