zoukankan      html  css  js  c++  java
  • java线程几个重要概念(2)

    1.线程的安全问题发生的条件

    只有当线程访问了共享的数据时,才会发生线程的安全问题!!!

    2.线程的同步代码块,同步方法(静态方法,普通方法)

    同步代码块的锁:"为任意的一个字符串都可以锁”

    同步方法(普通):锁对象就是 this   (静态方法):锁对象就是本类的字节码.class对象

    
    
    public class TicketDemo implements Runnable{

    //private int ticket = 100;

    private static int ticket = 50;

    @Override
    public void run() {
    while (true){
    // synchronized ("锁"){ //同步代码块 锁对象为任意的一个对象
    // if(ticket>0){
    // try {
    // System.out.println(Thread.currentThread().getName()+"正在买第"+ticket+"张票");
    // Thread.sleep(1000);
    // ticket--;
    // } catch (InterruptedException e) {
    // e.printStackTrace();
    // }
    // }
    // }
    palyTicket();
    }
    }




    public synchronized void palyTicket(){ //同步方法 所对象就是this
    if(ticket>0){
    try {
    System.out.println(Thread.currentThread().getName()+"正在买第"+ticket+"张票");
    Thread.sleep(1000);
    ticket--;
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
    }
     
    public class DemoMain {
    
        public static void main(String[] args) {
    
            TicketDemo t1= new TicketDemo(); //这个就是被共享的资源对象
    
            //对个线程访问了同一个资源对象TicketDemo
            Thread t = new Thread(t1);
            t.start();
    
            Thread t2 = new Thread(t1);
            t2.start();
        }
    
    }

    线程的生命周期

    借鉴一张内存图(了解线程为什么会阻塞)当一个 线程得到了 “锁” 抢到了执行权 但是在执行的过程中 遇到Sleep进入睡眠状态 那么这个时候 其他的线程必须等该线程醒来后执行完程序归还“锁”后才能进行执行,所以在这段时间内其他的线程就进入了“阻塞”的状态

     

    线程的实现原理

    坚持
  • 相关阅读:
    LeetCode 382. Linked List Random Node
    LeetCode 398. Random Pick Index
    LeetCode 1002. Find Common Characters
    LeetCode 498. Diagonal Traverse
    LeetCode 825. Friends Of Appropriate Ages
    LeetCode 824. Goat Latin
    LeetCode 896. Monotonic Array
    LeetCode 987. Vertical Order Traversal of a Binary Tree
    LeetCode 689. Maximum Sum of 3 Non-Overlapping Subarrays
    LeetCode 636. Exclusive Time of Functions
  • 原文地址:https://www.cnblogs.com/gaoSJ/p/12835594.html
Copyright © 2011-2022 走看看