java 线程 join 方式

    xiaoxiao2021-03-25  4

    package com.js; import java.awt.*; import javax.swing.*; public class Java_4_Thread_Join extends JFrame { private Thread threadA;// 定义两个线程 private Thread threadB; final JProgressBar progressBar = new JProgressBar();// 定义两个进度条组件 final JProgressBar progressBar2 = new JProgressBar(); int count = 0; public static void main(String[] args) { // TODO 自动生成的方法存根 init(new Java_4_Thread_Join(),400,100); } public Java_4_Thread_Join(){ super(); // 将进度条设置在窗体最北面 getContentPane().add(progressBar, BorderLayout.NORTH); // 将进度条设置到窗体的最南面 getContentPane().add(progressBar2, BorderLayout.SOUTH); progressBar.setStringPainted(true);//设置进度条显示数字字符 progressBar2.setStringPainted(true); // 使用匿名内部类形式初始化 Thread 实例 threadA = new Thread(new Runnable(){ int count = 0; public void run(){// 重写 run() 方法 while(true){ progressBar.setValue(++count); // 设置进度条的值 try{ Thread.sleep(100);// 使线程A 休眠 100毫秒 threadB.join();// 使线程B 调用 join() 方法 }catch(Exception e){ e.printStackTrace(); } } } }); threadA.start();// 启动线程A threadB = new Thread(new Runnable(){ int count = 0; public void run(){ while(true){ progressBar2.setValue(++count);// 设置进度条当前的值 try{ Thread.sleep(100);// 使用线程B休眠100毫秒 }catch(Exception e){ e.printStackTrace(); } if(count == 100){// 当count 变量增长为100时候 break;// 跳出循环 } } } }); threadB.start();// 启动线程B } public static void init(JFrame frame,int width,int height){ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(width, height); frame.setVisible(true); } }

    转载请注明原文地址: https://ju.6miu.com/read-200098.html

    最新回复(0)