1. 程式人生 > >多執行緒例項--多人同時取錢

多執行緒例項--多人同時取錢

A從櫃檯取,B從ATM取錢

package com.xjh.demo.thread;

public class MoneyTest {

    public static void main(String[] args) {
        Bank bank = new Bank();
        new PersonB(bank,800).start();
        new PersonA(bank,600).start();
        new PersonA(bank,500).start();

    }
}

class Bank {
    static int total = 10000;

    public void station(int num) {
        Bank.total -= num;
        System.out.println("A取出" + num + "元,還剩:" + Bank.total + "元");
    }

    public void atm(int num) {
        Bank.total -= num;
        System.out.println("B取出" + num + "元,還剩:" + Bank.total + "元");
    }
}

class PersonA extends Thread {
    Bank bank;
    int money;

    public PersonA(Bank bank, int money) {
        this.bank = bank;
        this.money = money;
    }


    @Override
    public void run() {
        while (Bank.total >= money) {
            bank.station(money);
            try {
                sleep(100);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    }
}

class PersonB extends Thread {
    Bank bank;

    int money;

    public PersonB(Bank bank, int money) {
        this.bank = bank;
        this.money = money;
    }

    @Override
    public void run() {
        while (Bank.total >= money) {
            bank.atm(money);
            try {
                sleep(100);
            } catch (Exception e) {

            }
        }
    }
}

相關推薦

執行例項--同時

A從櫃檯取,B從ATM取錢 package com.xjh.demo.thread; public class MoneyTest { public static void main(String[] args) { Bank bank = ne

執行例項二----兩個人同時存取

java 多執行緒簡單例項二----兩個人同一個賬戶取錢 思路:兩個執行緒,一個代表取錢的操作,一個代表存錢的操作,互相不影響,但是要保證存取的資料正確。 程式碼如下: package com.shone.thread.getmoney; /** * Created b

執行例項一----三個視窗同時賣票

package com.shone.thread.ticket; /** * Created by Xiao GuoJian on 2018/1/24. * 三個視窗同時賣票 */ /** * 票 */ class Ticket { private i

Python執行程序和協程的例項講解

執行緒、程序和協程是什麼 執行緒、程序和協程的詳細概念解釋和原理剖析不是本文的重點,本文重點講述在Python中怎樣實際使用這三種東西 參考: 程序、執行緒、協程之概念理解 程序(Process)是計算機中的程式關於某資料集合上的一次執行活動,是系統進行資源分配和排程的基本單位,是作業系統結構的基礎。執

Python執行例項

相關文件 Python多執行緒的實現和原理 執行緒與程序 執行緒是程序內一個執行單元,也是程序內的可排程實體。 執行緒與程序的區別: 地址空間,程序獨立空間,執行緒共享程序內的地址空間 資源分配,程序是系統資源排程及分派的基本單位 執行緒是處理器排程的

一個Python執行例項

水果分配的問題: 桌上有一隻盤子,每次只能放入5只水果。爸爸專放蘋果, 媽媽專放橘子,一個兒子專等吃盤子中的橘子,一個女兒專等吃盤子中的蘋果.用P,V操作實現爸爸、媽媽、兒子、女兒程序的同步控制。 貼一下程式碼: import random import threa

c++執行例項

主要總結了基於C++的多執行緒函式CreateThread,互斥鎖(或者稱資源獨佔)函式CreateMutex,等待資源函式WaitForSingleObject,關閉執行緒函式(其實是關閉執行緒的控制代碼)CloseHanlde,釋放互斥鎖函式ReleaseMutex的

201711671125 Java執行例項(第十一週)

建立3個售票視窗同時開始銷售10張票。 原始碼: public class One {     public static void main(String[] args) {         Ti

Java裸寫爬蟲技術,運用執行技術,高效爬某個醫療機構網站資料

最近喜歡上了資料的龐大的感覺,就爬取了一下某個醫療機構網站醫療資料,由於資料量龐大,只爬取了江西省的各個市的各個醫院的各個科室的各個科室。中各種資訊。其中用的持久層技術是hibernate框架,和用到一

執行與協程爬使用方法

#多執行緒與協程的使用會大大加速抓取速度,多執行緒算併發會產生重複和寫入衝突等問題,協程會自動切換這塊比較好點 分別主要是兩個模組,多執行緒threading,協程gevent 1、多執行緒threading版 ***多執行緒使用最主要就是給個執行緒分配內容的問題,這有些小技巧,主要就是

執行實現使用者同時收發的簡單socket服務端

簡單的socket程式碼和多執行緒練習用socket服務端和多執行緒實現可以連線多個客戶端並同時收發的功能。這裡要用到socket 和 threading所以,記得:import socket, threading一、建立socket服務端首先,按正常操作,建立一個socke

執行例項模仿在銀行

package thread; public class Bank{  private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public Ba

佇列+執行例項

原文章連結:https://blog.csdn.net/cai_chinasoft/article/details/51566632 第一步:建立一個無邊界自動回收的執行緒池,在此用 JDK提供的ExecutorService類此執行緒池。如果執行緒池的大小超過了處理任務所需

Java 執行實現個視窗同時賣票

建立執行緒的第二種方式:實現Runable介面 步驟: 1,定義類實現Runnable介面 2,覆蓋Runnable介面中的run方法。將執行緒要執行的程式碼存放在該run方法中。 3,通過Thread類建立執行緒物件。 4,將Runnable介面的子類物件作為實際引數傳遞

TCP-IP學習筆記四:NIO的網路程式設計-執行例項

TCP/IP學習筆記四:NIO的網路程式設計-多執行緒例項 標籤(空格分隔): 網路程式設計 NIO 多執行緒 NIO的多執行緒程式設計 對於單執行緒的程式來說,我們無法達到並行處理,我們要向達到並行處理,必定會使用多執行緒,但是我們哪些程式碼

java執行例項解析

多執行緒含義: 1、首先從巨集觀上解釋一下多執行緒到底是個什麼東西,我們拿一個生活中例子來看一下;汽車上高速和出高速的時候都需要經過收費站吧,我們可以腦補下這個場景;現在汽車要下高速,收費站最主要的任務是對每輛車進行收費,這樣我們可以把收費站看成一個程式方法體,專門處理收費

執行例項之簡單的賣票程式 ------記錄與畢向東老師視訊

/*簡單的賣票程式,多個視窗同時實現 1.定義類的實現Runnable介面 2.覆蓋Runnable介面中的run方法。將執行緒要執行的程式碼存放在該run方法中。 3.通過Thread類建立執行緒物件。 4.講Runnable介面的子類物件作為實際引數傳遞給Thread類

C++執行例項(_beginThreadex建立執行)

C++多執行緒(二)(_beginThreadex建立多執行緒)   C/C++ Runtime 多執行緒函式 一 簡單例項(來自codeprojct:http://www.codeproject.com/useritems/MultithreadingTutorial.asp) 主執行緒建立2個執行緒t1

在BCB中使用執行例項

多執行緒程式設計是提高系統資源利用率的一種常見方式。它佔用的資源更小,啟動更快,還可以實現在後臺執行一些需時較長的操作。一、初識TThread物件VCL提供了用於多執行緒程式設計的TThread類,在這個類中封裝了Windows關於執行緒機制的Windows API,通常將

C++之執行(POSIX執行例項

1.程序同時建立5個執行緒,各自呼叫同一個函式 #include <iostream> #include <pthread.h> //多執行緒相關操作標頭檔案,可移植眾多平臺 using namespace std; #define NUM_TH