一直想要做一个自己的软件,但是自己学的是Java,Swing是一个快要淘汰的技术,所以就不太想要去学这门过时的技术了。最近Oracle在推JavaFX2.1.虽然JavaFX的前景也不是很明朗,但是我又不懂C,C++,C#的,别无选择。
既然决定了要学,就得学好。不过学一几天,发现在关于JavaFX的文档和文章还真不多。想要把它学好,还真不容易。但是既然上了这船,就决不回头。
今天开始学JavaFX中的多线程。JavaFX已经为我们开发人员准备了很多很好的类。如Worker, Service, Task
首先说说Worker,Worker是封装了一个或多个在后台工作的线程的对象,它的状态可以被JavaFX Application Thread(JavaFX中负责render主界面的线程)监控和管理。Woker有两个实现,一个是Service,可以被重复利用;一个是Task,不可重复利用。
然后Worker有六种状态。之间的转换关系,我用一个图表达一下会比较清楚。