zoukankan      html  css  js  c++  java
  • 好记性不如烂笔头77-多线程-Thread子类的线程对象是不同的

    Thread子类的线程对象是不同的。
    比方:
    EasySelfThread thread = new EasySelfThread();
    //同一个线程对象
    Thread t1 = new Thread(thread, “t1”);
    Thread t2 = new Thread(thread, “==t2”);//(3)
    因为t1和t2是两个对象,所以它们所启动的线程可同一时候訪问run()函数。

    Thread子类的线程对象是不同的java源码
    package com.thread;

    /**
    * 通过Thread的子类产生的线程对象,是不同对象的线程
    *
    * @author 范芳铭
    */

    public class EasySelfThread implements Runnable {
    
        //public synchronized  void print() { // (1)
        public  void print() { // (1)   
            for (int i = 0; i < 3; i++) {
                System.out.println(Thread.currentThread().getName() + " : " + i);
                try {
                    Thread.sleep(100);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    
        public   void run() {
            this.print();
        }
    
        public static void main(String[] args) {    
            EasySelfThread thread = new EasySelfThread();
            //同一个线程对象
            Thread t1 = new Thread(thread, "t1");
            Thread t2 = new Thread(thread, "==t2");//(3)
    
            t1.start();
            t2.start();
        }
    }

    执行结果
    t1 : 0
    ==t2 : 0
    ==t2 : 1
    t1 : 1
    ==t2 : 2
    t1 : 2

    也能够把run方法用 synchronized 修饰,可是他们还是两个对象,而不是一个。

  • 相关阅读:
    hashlib 库
    包--json 与 pickle 模块
    模块
    叠加多个装饰器,列表生成式,字典生成式,匿名函数
    函数的递归调用和二分法
    Redis之哨兵模式
    Redis之集群
    Redis之主从复制
    Django之redis-session
    Python操作redis
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/7348059.html
Copyright © 2011-2022 走看看