zoukankan      html  css  js  c++  java
  • 吴裕雄--天生自然java开发常用类库学习笔记:多线程基础编程

    class MyThread implements Runnable{    // 实现Runnable接口,作为线程的实现类
        private String name ;        // 表示线程的名称
        public MyThread(String name){
            this.name = name ;        // 通过构造方法配置name属性
        }
        public void run(){    // 覆写run()方法,作为线程 的操作主体
            for(int i=0;i<10;i++){
                System.out.println(name + "运行,i = " + i) ;
            }
        }
    };
    public class RunnableDemo01{
        public static void main(String args[]){
            MyThread mt1 = new MyThread("线程A ") ;     // 实例化对象
            MyThread mt2 = new MyThread("线程B ") ;     // 实例化对象
            Thread t1 = new Thread(mt1) ;        // 实例化Thread类对象
            Thread t2 = new Thread(mt2) ;        // 实例化Thread类对象
            t1.start() ;    // 启动多线程
            t2.start() ;    // 启动多线程
        }
    };
    class MyThread implements Runnable{    // 继承Thread类,作为线程的实现类
        private int ticket = 5 ;        // 表示一共有5张票
        public void run(){    // 覆写run()方法,作为线程 的操作主体
            for(int i=0;i<100;i++){
                if(this.ticket>0){
                    System.out.println("卖票:ticket = " + ticket--) ;
                }
            }
        }
    };
    public class RunnableDemo02{
        public static void main(String args[]){
            MyThread mt = new MyThread() ;     // 实例化对象
            new Thread(mt).run() ;    // 调用线程主体
            new Thread(mt).run() ;    // 调用线程主体
            new Thread(mt).run() ;    // 调用线程主体
        }
    };
    class MyThread extends Thread{    // 继承Thread类,作为线程的实现类
        private String name ;        // 表示线程的名称
        public MyThread(String name){
            this.name = name ;        // 通过构造方法配置name属性
        }
        public void run(){    // 覆写run()方法,作为线程 的操作主体
            for(int i=0;i<10;i++){
                System.out.println(name + "运行,i = " + i) ;
            }
        }
    };
    public class ThreadDemo01{
        public static void main(String args[]){
            MyThread mt1 = new MyThread("线程A ") ;     // 实例化对象
            MyThread mt2 = new MyThread("线程B ") ;     // 实例化对象
            mt1.run() ;    // 调用线程主体
            mt2.run() ;    // 调用线程主体
        }
    };
    class MyThread extends Thread{    // 继承Thread类,作为线程的实现类
        private String name ;        // 表示线程的名称
        public MyThread(String name){
            this.name = name ;        // 通过构造方法配置name属性
        }
        public void run(){    // 覆写run()方法,作为线程 的操作主体
            for(int i=0;i<10;i++){
                System.out.println(name + "运行,i = " + i) ;
            }
        }
    };
    public class ThreadDemo02{
        public static void main(String args[]){
            MyThread mt1 = new MyThread("线程A ") ;     // 实例化对象
            MyThread mt2 = new MyThread("线程B ") ;     // 实例化对象
            mt1.start() ;    // 调用线程主体
            mt2.start() ;    // 调用线程主体
        }
    };
    class MyThread extends Thread{    // 继承Thread类,作为线程的实现类
        private String name ;        // 表示线程的名称
        public MyThread(String name){
            this.name = name ;        // 通过构造方法配置name属性
        }
        public void run(){    // 覆写run()方法,作为线程 的操作主体
            for(int i=0;i<10;i++){
                System.out.println(name + "运行,i = " + i) ;
            }
        }
    };
    public class ThreadDemo03{
        public static void main(String args[]){
            MyThread mt1 = new MyThread("线程A ") ;     // 实例化对象
            mt1.start() ;    // 调用线程主体
            mt1.start() ;    // 错误
        }
    };
    class MyThread extends Thread{    // 继承Thread类,作为线程的实现类
        private int ticket = 5 ;        // 表示一共有5张票
        public void run(){    // 覆写run()方法,作为线程 的操作主体
            for(int i=0;i<100;i++){
                if(this.ticket>0){
                    System.out.println("卖票:ticket = " + ticket--) ;
                }
            }
        }
    };
    public class ThreadDemo04{
        public static void main(String args[]){
            MyThread mt1 = new MyThread() ;     // 实例化对象
            MyThread mt2 = new MyThread() ;     // 实例化对象
            MyThread mt3 = new MyThread() ;     // 实例化对象
            mt1.run() ;    // 调用线程主体
            mt2.run() ;    // 调用线程主体
            mt3.run() ;    // 调用线程主体
        }
    };
  • 相关阅读:
    Filebeat 日志收集器 安装和配置
    纠错式教学法对比鼓励式教学法 -----Lily、贝乐、英孚,乐加乐、剑桥国际、优学汇、北外青少
    硅谷夜谈
    指路Reactive Programming
    Spring WebFlux 要革了谁的命?
    flink部署操作-flink standalone集群安装部署
    Flink的高可用集群环境
    当怪物来敲门 经典台词
    浅析几种线程安全模型
    最详细的排序解析,理解七大排序
  • 原文地址:https://www.cnblogs.com/tszr/p/12152826.html
Copyright © 2011-2022 走看看