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();



  • 相关阅读:
    Maybe You Don't Know ! 如何比较两个引用是否指向同一个对象?
    记录一点项目心得...
    SharePoint 站点模版
    ObjectSpaces,See you in 2006...
    CLR如何实现线程同步
    Using 1.1, Waiting 2.0 & EasyThread
    在SharePoint中的Workflow引擎开发完成
    ViewState
    《WalkThrough WebPart 入门指南二》完成
    隐藏在.NET中的IoC?
  • 原文地址:https://www.cnblogs.com/yyjxxd/p/5478013.html
Copyright © 2011-2022 走看看