import javaawt;
import javaawtevent;
import javaxswing;
public class Run{
public static void main(String arg[]){
new Move();
}
}
class Move extends JFrame implements Runnable,ActionListener{
JLabel check[]=new JLabel[10];
Thread move;
JButton b=new JButton("按下开始");
Move(){
move=new Thread(this);
JPanel checkBox=new JPanel();
for(int i=0;i<10;i++)
{
check[i]=new JLabel("1");
checkBoxadd(check[i]);
}
baddActionListener(this);
add(b,BorderLayoutNORTH);
add(checkBox,BorderLayoutCENTER);
setVisible(true);
setBounds(500,500,180,100);
validate();
setDefaultCloseOperation(JFrameDISPOSE_ON_CLOSE);
}
public void actionPerformed(ActionEvent e){
if(egetSource()==b){
try{movestart();}
catch(Exception event){}
}
}
public void run(){
int i=0;
while(true){
if(i>9)return;
check[i]setText("0");
i++;
try{movesleep(500);}
catch(InterruptedException e){}
}
}
}
我用过的就是 端口监听的时候
比如说 你的程序在200端口上 设置另一个监听,当有数据通过这个端口传输的时候 就会被监听程序所获取 但是如何保证 实时监听?这个就需要有个线程独立的 来执行这个工作 保持监听的状态。
再比如说 你需要做一个任务处理的程序 当数据库中有新任务时候就进行处理/或者XX路径下出现新的文件 就进行处理,这个时候 也需要用到线程 来实时扫描数据库或者是文件路径,来保证任务能够得到及时的处理
java创建的线程在调用start方法后,进入就绪状态,但通常不会马上分配到CPU,处于线程就绪队列,需要等待时间片轮转到该线程获得CPU后才能执行。
如果你需要先执行新的线程,可以使用Thread类的join方法来等待该线程终止后,再继续往下执行,下面举个代码例子:
public class Test {int i = 0;
public static void main(String[] args) {
Test test = new Test();
MyThread1 myThread = new MyThread1(test);
Thread thread = new Thread(myThread);
threadstart();
try {
threadjoin();//如果不调用此方法,打印结果为0
} catch (InterruptedException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
Systemoutprintln(testi);
}
}
class MyThread1 implements Runnable{
Test test;
public MyThread1(Test test){
thistest = test;
}
@Override
public void run() {
testi = 1;
}
}
以上就是关于java程序错误,线程启动问题全部的内容,包括:java程序错误,线程启动问题、在用java开发程序中什么时候应用到线程、Java 多线程程序。java先执行主程序,并行执行线程调用线程的结果是空等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)