zoukankan      html  css  js  c++  java
  • javaoop__线程的问题

    1. 线程是 比进程小的 执行单位

       为了实现多线程 有两种方法, 继承 thread 类 或者 实现 runnable 接口

                     两种方式 都需要 把 run() 重写

                      用 start() 调用

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    如果 是 使用 的 runnable 的方式, 就可以解决买票系统中 多个线程 处理 统一资源的问题(避免 的是 同号票的出现

    同步可以解决 资源共享 的安全问题 (解决的是 0号 和负数票的出现)同步代码块和 同步方法

    public void run() {
    while(true){

    synchronized (this) {

    if(ticket>0){
    try{
    Thread.sleep(5000);
    }catch(Exception e){
    e.printStackTrace();
    }
    System.out.println(Thread.currentThread().getName()+"卖出第"+ticket--+"张票");
    }else{
    break;
    }
    }
    }
    }

    ++++++++++++++++++++++++++++++++++++++++++++

    public synchronized void SaleTicket(){
    if(ticket>0){
    try{
    Thread.sleep(5000);
    }catch(Exception e){
    e.printStackTrace();
    }
    System.out.println(Thread.currentThread().getName()+"卖出第"+ticket--+"张票");
    }
    }

     +++++++++++++++++++++++++++++++++++++++++++++++++

           2.    线程是 交互 运行的, 是相互的抢夺 CPU 的资源,

    public class MyThread extends Thread {

    int ticket=20;

    public void run() {
    System.out.println("我被调用了");
    while(ticket>0){
    System.out.println(Thread.currentThread().getName()+"卖出第" + ticket-- +"张票");
    }
    }
    }

    MyThread mt1=new MyThread();
    mt1.start();

    ++++++++++++++++++++++++++++++++++++++++++++++++

    3.然后就是 实现 的 runnable()接口

    public class MyThread2 implements Runnable {

    public void run() {
    while(ticket>0){

    System.out.println(Thread.currentThread().getName()+"卖出第"+ticket--+"张票");
    }
    }

    }

    MyThread2 myt1=new MyThread2();
    Thread t1 = new Thread(myt1);
    t1.start();



  • 相关阅读:
    洛谷P1330 封锁阳光大学
    洛谷P1341 无序字母对
    Bzoj1059 [ZJOI2007]矩阵游戏
    POJ2337 Catenyms
    Bzoj2342 [Shoi2011]双倍回文
    Bzoj1009 [HNOI2008]GT考试
    Bzoj3670 [Noi2014]动物园
    POJ2406 Power Strings
    POJ 2752 Seek the Name, Seek the Fame
    POJ3522 Slim Span
  • 原文地址:https://www.cnblogs.com/yyjxxd/p/5478013.html
Copyright © 2011-2022 走看看