多线程

作者: 魔女小姐的猫 | 来源:发表于2020-07-02 07:02 被阅读0次

    进程

    在多任务的系统中,每个独立执行的程序都被称为进程(正在进行的程序)
    CPU只有一个的情况下,每个进程之间要不断的切换,反而要额外的开销(交替执行多个程序)反而更慢
    双CPU系统才能实现多进程,每个CPU一个执行一个程序,两个程序同时进行
    一个进程可以包含一个或多个线程
    

    线程

    一个线程就是一个程序内部的一条执行线索
    多线程:一个程序实现多段代码同时交替运行,就需要产生多个线程,并且指定每个线程要执行的代码   
    Thread.currentThread().getName();
    
    Thread thread = new Thread();
    //后台线程
    thread.setDaemon(true);
    

    多线程卖票案例

    public class ThreadDemo {
        public static void main(String[] args) {
            try {
                /**
                 * 一个thread对象是一个线程
                 */
                TestThread tt = new TestThread();
                // 继承thread
                // tt.start();
                // tt.start();
                // tt.start();
                // tt.start();
    
                new Thread(tt).start();
                new Thread(tt).start();
                new Thread(tt).start();
                new Thread(tt).start();
            } catch (Exception e) {
                // TODO: handle exception
            }
        }
    }
    
    /**
     * 实现runnable 接口比继承thread灵活
     * 
     * 适合多个相同程序代码的线程去处理同一资源的情况,把虚拟CPU(线程)同程序代码、数据有效分离 , 体现了面向对象的设计思想
     * 
     * @author TianYu
     *
     */
    class TestThread implements Runnable /* extends Thread */ {
        int tickets = 100;
    
        @Override
        public void run() {
            while (true) {
                if (tickets > 0) {
                    System.out.println(Thread.currentThread().getName() + "  is show " + tickets--);
                }
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:多线程

          本文链接:https://www.haomeiwen.com/subject/jyflqktx.html