1. 程式人生 > >柵欄(CyclicBarrier)初嘗試

柵欄(CyclicBarrier)初嘗試

   以下是柵欄的一個簡單例子:
package JavaDay6_02;

import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;

/**
 * @author [email protected]
 * @date 18-6-2  上午10:33
 */

public class Demo4 {
    public static class Writer extends Thread {
        private final CyclicBarrier cyclicBarrier;

        public Writer(CyclicBarrier cyclicBarrier) {
            this.cyclicBarrier = cyclicBarrier;
        }

        @Override
        public void run() {
            try{
                Thread.sleep(1000);
                System.out.println("執行緒" + this.getName() + "寫入資料完畢,等待其他執行緒寫入...");
                cyclicBarrier.await();
                System.out.println("執行緒" + this.getName() + "關閉");
            } catch (InterruptedException e) {
                e.printStackTrace();
            } catch (BrokenBarrierException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) throws BrokenBarrierException, InterruptedException {
        CyclicBarrier cyclicBarrier = new CyclicBarrier(5);

        for(int i = 0; i < 4 ; i++) {
            new Writer(cyclicBarrier).start();
        }

        cyclicBarrier.await();
        Thread.sleep(1000);
        System.out.println("所有執行緒寫入資料完畢...");
    }
}

    執行結果為:

    

相關推薦

柵欄CyclicBarrier嘗試

   以下是柵欄的一個簡單例子:package JavaDay6_02; import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; /**

java多執行緒併發系列之閉鎖(Latch)和柵欄CyclicBarrier

-閉鎖(Latch) 閉鎖(Latch):一種同步方法,可以延遲執行緒的進度直到執行緒到達某個終點狀態。通俗的講就是,一個閉鎖相當於一扇大門,在大門開啟之前所有執行緒都被阻斷,一旦大門開啟所有執行緒都將通過,但是一旦大門開啟,所有執行緒都通過了,那麼這個閉鎖的狀態就失效了,門

柵欄CyclicBarrier實現高併發測試

public class TestCyclic { @Test public void test01() { int count = 10000;//併發執行緒數

Nginx-- 體驗

代理服務 ava gin nginx -t fig java 文件夾 tle tar.gz 1.概念   Nginx是一個高性能的反向代理器,同時也是一個郵件代理服務器。 2.Nginx的優勢    1.采用多進程模型    Master、worker/work

SpringBoot--體驗

一、簡介 SpringBoot是什麼? SpringBoot是新一代開發框架,減少了xml,採用“約定大於配置”的思想,提供了許多開箱即用的三方庫,使開發者從煩擾的配置中解脫出來,能更專注於業務邏輯。 為什麼要學習SpringBoot? SpringBoot與Spring一脈相承,學習曲線平滑

快速排序直接-

import java.util.Scanner; public class QuickSort_1 { static void show(int []arr) { for(int i=0;i<arr.length;i++) System.out.print(arr[i]+"

碼雲gitee體驗

背景知識: 碼雲和github都是一款程式碼託管平臺,它們各自有什麼優點這裡就不再闡述了,具體怎麼選擇也因人而異吧。 本文主要介紹如何在碼雲中進行程式碼託管。 1.首先介紹碼雲的使用方法。進入官網,註冊並登陸賬號。第一步操作如下: 2.之後就是填寫一些專案的基本資訊

雲伺服器ECS體驗--選購方案

什麼是雲伺服器? 雲伺服器(Elastic Compute Service, 簡稱ECS),是一種簡單高效,處理能力可以彈性伸縮的計算服務。 來源:https://edu.aliyun.com/lab/courses/4f5e67eb1b254fe2869dc14ca4f648db/deta

ViewPager 相識

ViewPager常用嗎? ViewPager是一個靈活切換頁面場景中廣泛使用的一個容器,我們所熟知的絕大部分App應用都使用了它。型如WeChat,今日頭條,淘寶等中的主介面,在不同的型別button下切換View。由於其出色的快取機制,v4包的加成,使其處理

2009-2010小結入職場

目錄: 2009年3月2日,是我上班的第一天。不過這時候還不叫正式工作,稱為實習。公司方面說因為畢業證沒拿到無法簽訂勞動合同。我要承受的代價就是50%工資。不過對於當時還沒有嘗過親手賺錢的滋味的我來說,50%也已經相當豐厚了,至少這個學期吃飯問題可以自己解決了。 上班第一天,考研成績出來了,我跟

CentOS 7 安裝以太坊EtherumGeth嘗試挖礦

本地私有鏈嘗試以太坊挖礦功能參考虛擬機器環境2C4G20G,CentOS Linux release 7.4.1708 (Core)安裝所需基礎工具:yum update -y && yum install git wget bzip2 vim gcc-c++

Java for Web學習筆記一四二Spring security準備3

瞭解Spring Security的基本知識 完全J2EE的web container也能提供完整的安全框架,但tomcat不是。Spring Security可以使用JDBC,或者我們的服務或倉庫來認證使用者,也提供了內建的對微軟Active Derectory,Jasi

git 使用詳解3-- 體驗

Git 基礎 本章將介紹幾個最基本的,也是最常用的 Git 命令,以後絕大多數時間裡用到的也就是這幾個命令。讀完本章,你就能初始化一個新的程式碼倉庫,做一些適當配置;開始或停止跟蹤某些檔案;暫存或提交某些更新。我們還會展示如何讓 Git 忽略某些檔案,或是名稱符合特定模式

GO語言學習筆記寫GO程序

ffffff darwin oss 雙引號 標識 產生 1.5 運行 mar 一、第一個程序名稱:helloworld.go package main import "fmt" func main() { fmt.Println("hello world!"

spring事務詳解探討

上鎖 actions sha 我們 一起 很多 應用 out 得到 一、什麽是事務 維基百科:數據庫事務(簡稱:事務)是數據庫管理系統執行過程中的一個邏輯單位,由一個有限的數據庫操作序列構成。理解:事務(Transaction)是數據庫區別於文件系統的重要特性之一。傳統關

Ioc容器Autofac系列1--

轉自:兩會的部落格 前言 第一次接觸Autofac是因為CMS系統--Orchard,後來在一個開源爬蟲系統--NCrawler中也碰到過,隨著深入瞭解,我越發覺得Ioc容器是Web開發中必不可少的利器。那麼,Ioc容器是用來做什麼的?用了有什麼好處?我相信如果不明白

軟體設計之旅1 寫軟體需求規格說明

畢業快3年了,做了好久的軟體開發,除錯工作。到最近開始負責晶片的Arm軟體部分,進行軟體程式碼的設計時,發覺有些吃力,不知道該如何下手,雖然手裡有一套現有可以參考的程式碼,仍然覺得對程式碼的設計無從下手,不知道程式碼該如何設計,結構體該有什麼變數構成,程式碼流程該怎樣,新增

python3爬蟲學習筆記入爬蟲 urllib學習

一、爬蟲是什麼 網路爬蟲(也叫做網頁蜘蛛),是一種按照一定的規則,自動地抓取全球資訊網資訊的程式或者指令碼。如果把網際網路比做成一個大的蜘蛛網,蜘蛛網上每個節點都有大量的資料,爬蟲就像一隻小蜘蛛通過網頁的地址找到網站並獲取資訊:HTML程式碼/JSON資料/二進位制資料(圖

痞子衡嵌入式:恩智浦機器視覺模組OpenMV-RT那些事1- 體驗

  大家好,我是痞子衡,是正經搞技術的痞子。本系列痞子衡給大家介紹的是機器視覺模組OpenMV-RT初體驗。   近些年機器視覺應用一直是個很火的方向,想象一下機器如果能長上“眼睛”,是不是就可以做一些人類才能做的事情,因此機器視覺是人工智慧實現的一個重要基礎。痞子衡當年碩士畢業論文課題就是工業相機影象處理

【原創】Linux RCU原理剖析-窺門徑

背景 Read the fucking source code! --By 魯迅 A picture is worth a thousand words. --By 高爾基 說明: Kernel版本:4.14 ARM64處理器,Contex-A53,雙核 使用工具:Source Insight 3.5