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



  • 相关阅读:
    Mysql技术内幕——InnoDB存储引擎
    Nginx 0.7.x + PHP 5.2.6(FastCGI)+ MySQL 5.1 在128M小内存VPS服务器上的配置优化
    Mysql5.5 InnoDB存储引擎配置和优化
    MySQL存储引擎总结
    MySQL存储引擎--MyISAM与InnoDB区别
    MySQL存储引擎
    Mysql的建表规范与注意事项
    安装好oracle11gR2之后在相应路径下却没有生成tnsnames.ora和listener.ora
    split切割.号的字符串
    配置文件c3p0-config.xml
  • 原文地址:https://www.cnblogs.com/yyjxxd/p/5478013.html
Copyright © 2011-2022 走看看