1. 程式人生 > >多執行緒案例

多執行緒案例

1、

寫兩個執行緒,一個執行緒列印1-52,另一個執行緒列印字母A-Z。

列印順序為12A34B56C……5152Z。

學習執行緒之間的通訊協調關係。

程式碼

執行緒類Thread01

複製程式碼
package com.ljq.test;

public class Thread01 implements Runnable {
    private Object obj;

    public Thread01(Object obj) {
        this.obj = obj;
    }

    public void run() {
        synchronized (obj) {
            for
(int i = 1; i <= 26; i++) { System.out.print(2 * i - 1 + ""); System.out.print(2 * i + ""); obj.notifyAll(); try { obj.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } } } }
複製程式碼

執行緒類Thread02

複製程式碼
package com.ljq.test;

public class Thread02 implements Runnable {
    private Object obj;

    public Thread02(Object obj) {
        this.obj = obj;
    }

    public void run() {
        synchronized (obj) {

            for (char c = 'A'; c <= 'Z'; c++) {
                System.out.print(c + "");
                obj.notifyAll();
                try
{ obj.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } } } }
複製程式碼

測試類ThreadTest

複製程式碼
package com.ljq.test;

public class ThreadTest {
    
    public static void main(String[] args) {
        Object obj = new Object();
        Thread01 t1 = new Thread01(obj);
        Thread02 t2 = new Thread02(obj);
        Thread thread01 = new Thread(t1);
        Thread thread02 = new Thread(t2);
        thread01.start();
        thread02.start();
    }

}
複製程式碼

相關推薦

執行案例產生的資料誤差

xl_echo編輯整理,歡迎轉載,轉載請宣告文章來源。更多IT、程式設計案例、資料請聯絡QQ:1280023003 百戰不敗,依不自稱常勝,百敗不頹,依能奮力前行。——這才是真正的堪稱強大!! 需求:一個電影院售票站,總共有四個視窗,但是隻有50張票,如何保證四個視窗售票的

執行案例 Java

1、購票(不安全策略) 程式碼片段: public class Main { private static int ticket = 10; public static void main(String[] args) { Runnable r = new Ru

Java基礎之執行案例-單生產單消費

在講單生產單消費之前,我們先來說一下執行緒間通訊的問題 一、 執行緒間通訊 概念:多個執行緒在處理同一個資源,但是處理的動作(執行緒的任務)卻不相同。 比如:執行緒A用來生成包子的,執行緒B用來吃包子的,包子可以理解為同一資源,執行緒A與執行緒B處理的動作,一個是生產,一個是消費,

java執行案例1之簡單銀行取款問題及其優化

      之前學java的時候,學校老師由於課時問題,沒有教我們多執行緒,最近學校外聘的企業教師給我們做實訓要用到多執行緒,因此才初步瞭解多執行緒,以下這個案例只是介紹java程式碼優化,程式碼中有涉及多執行緒,但今天不對其講解,只簡單講解程式碼優化的問題,希望對初學者有幫

執行案例

1、 寫兩個執行緒,一個執行緒列印1-52,另一個執行緒列印字母A-Z。 列印順序為12A34B56C……5152Z。 學習執行緒之間的通訊協調關係。 程式碼 執行緒類Thread01 package com.ljq.test; public class Thread01 implements Run

JavaSE中執行案例2(關於執行通訊-等待與喚醒)

案例要求:有一個抽獎池,該抽獎池中存放了獎勵的金額,該抽獎池用一個數組int[] arr = {10,5,20,50,100,200,500,800,2,80,300}; 建立兩個抽獎箱(執行緒)設定執行緒名稱分別為“抽獎箱1”,“抽獎箱2”,隨機從arr陣列中獲取獎項元素並

Java學習--執行案例--模擬火車票銷售(執行安全問題)

概述:火車票20張,三個視窗同時賣火車票 一.建立一個Runnable介面的實現類TicketSell,重寫run()方法 public class TicketSell implements

Java執行實現電影院售票案例

某電影院目前正在上映賀歲大片,共有100張票,而它有3個售票視窗,請設計一個程式模擬該電影院售票。 定義Sell類實現Runnable介面,很好的解決了單繼承共享資源問題 public class Sell implements Runnable { // 定義100張票,三個售票

spider----利用執行爬取51job案例

程式碼如下 import json from threading import Thread from threading import Lock from queue import Queue import requests from bs4 import BeautifulSoup i

非結構化資料與結構化資料提取---執行爬蟲案例

多執行緒糗事百科案例 案例要求參考上一個糗事百科單程序案例 Queue(佇列物件) Queue是python中的標準庫,可以直接import Queue引用;佇列是執行緒間最常用的交換資料的形式 python下多執行緒的思考 對於資源,加鎖是個重要的環節。因為python原生的list,dict等,

JavaSE基礎學習筆記及案例(二)執行(下)與簡單工廠模式的瞭解

1.多執行緒(下) 1.1單例設計模式:保證類在記憶體中只存在一個物件 ************餓漢式與懶漢式的區別【面試題】 餓漢式單例模式:以空間換時間 懶漢式單例模式:以時間換空間(不推薦使用,僅在面試中用到) 3.多執行緒訪問時:餓漢式不會建立多個物件;而懶漢式

JavaSE基礎學習筆記及案例(一)IO流與執行(上)

IO流 1. IO流知識點 IO流(字元輸入流FileReader) 位元組輸入流 FileInputStream IO流(字元輸出流FileWriter) 位元組輸出流 FileOutputStream 字元緩衝區輸入流( BufferedReader) 位元組緩衝區輸入流Bu

java執行入門案例(2)之執行簡單應用

  上一篇文章:java多執行緒案例(1)之簡單銀行取款問題及其優化 我大概介紹了一下Java程式碼優化的問題,主要針對出學者而言,這一次我要介紹多執行緒應用的簡單案例 。網上有許多多執行緒的案例,但大多都挺複雜的,今天我主要目的也是介紹一下多執行緒應用的簡單案例,讓初學

java執行入門案例(1)之簡單銀行取款問題及其優化

      之前學java的時候,學校老師由於課時問題,沒有教我們多執行緒,最近學校外聘的企業教師給我們做實訓要用到多執行緒,因此才初步瞭解多執行緒,以下這個案例只是介紹java程式碼優化,程式碼中有涉及多執行緒,但今天不對其講解,只簡單講解程式碼優化的問題,希望對初學

java中的Executors簡介與執行在網站上逐步優化的運用案例

提供Executor的工廠類 忽略了自定義的ThreadFactory、callable和unconfigurable相關的方法 newFixedxxx:在任意時刻,最多有nThreads個執行緒在處理task;如果所有執行緒都在執行時來了新的任務,它會被扔

執行程式碼小案例

public class TestThread {     public static void main(String args[]) {         RunnableEat R1 = new RunnableEat( "eat"

經典案例那個什麼執行--賣票..........................就是好像有點不對~~!先寫下來.有大哥哥,大姐姐幫看下嗎

package javawork; public class RunnableDemo2 { public static void main(String[] args) { Runnable02 ru = new Runnable02(); Thread ru1 = new Thread(ru); T

201711671103《Java程式設計》執行的應用案例

兩個人AB通過一個賬戶A在櫃檯取錢和B在ATM機取錢! 1.先建立一個Bank類 程式碼:package bank; public class Bank {           static int money = 1000;  &

JAVA執行wait與notify詳細解析(由生產者和消費者案例引出)

生產者和消費者這個關係是個經典的多執行緒案例。現在我們編寫一個Demo來模擬生產者和消費者之間的關係。 假如有兩個類,一個是資料生產者類DataProvider,另一個是資料消費者類DataConsumer,這兩個類同時對資料類Data進行操作,生產者類負責生產資料,消費者類負責消費資料,下面是

Visual C++網路程式設計經典案例詳解 第3章 執行與非同步套接字程式設計 實現執行同步 互斥物件 使用API函式操作互斥物件

互斥物件和臨界區物件和事件物件作用一樣 用於實現執行緒同步 互斥物件可以線上程中使用 CreateMutex()建立並返回互斥物件 原型如下 HANDLE CreateMutex(   LPSECURITY_ATTIRIBUTES lpMutexAttributes,