• 线程小例子--控制输出


    线程小例子--控制输出

    功能:一个小窗体,两个按钮,点击开始按钮,控制台开始打印,点击停止按钮,控制台停止打印。

    import java.awt.Container;
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    
    public class ThreadDemo extends JFrame{
        String info="你很棒";
        static Thread tstart;
        Boolean iscontinue=true;  //控制开始还是结束
        public  ThreadDemo(){
            super();
            Container c=getContentPane();
            setBounds(300,200,250,100);
            c.setLayout(new FlowLayout());
            JButton jb1=new JButton("开始");
            JButton jb2=new JButton("停止");
            c.add(jb1);
            c.add(jb2);
            jb1.addActionListener(new ActionListener() {  //开始按钮的监听事件
                
                @Override
                public void actionPerformed(ActionEvent e) {
                    // TODO Auto-generated method stub
                    tstart=new Thread(new Runnable() {
                        
                        @Override
                        public void run() {
                            // TODO Auto-generated method stub
                            iscontinue=true;
                            while(true){
                                if(iscontinue==false){
                                    break;
                                }
                                try {
                                    Thread.sleep(1000);
                                } catch (InterruptedException e) {
                                    // TODO Auto-generated catch block
                                    e.printStackTrace();
                                }
                                System.out.println(info);
                            }
                        }
                    });
                    tstart.start();
                }
            });
            jb2.addActionListener(new ActionListener() {  //结束按钮的监听事件
                
                @Override
                public void actionPerformed(ActionEvent e) {
                    // TODO Auto-generated method stub
                    iscontinue=false;
                    tstart=null;
                }
            });
            setVisible(true);
        }
        public static void main(String[] args){
            new ThreadDemo();
        }
    }

    思路:在开始按钮中新建线程,将控制变量iscontinue置为true,在结束按钮中将控制变量iscontinue置为false,同时将线程置为null

  • 相关阅读:
    【BUG修复】视频综合管理平台EasyNVS首页设备接入情况显示与实际不符如何调整?
    数据库连接池
    手写SORM(simple object relation mapping)框架3—DBManager和TableContext的设计
    jdbc—总结
    jdbc—CLOB和BLOB
    jdbc—时间处理
    jdbc—事务
    递归(最大公约数)
    C++ return
    函数参数
  • 原文地址:https://www.cnblogs.com/xtuxiongda/p/8610584.html
Copyright © 2020-2023  润新知