1. 程式人生 > >一半同步-一半非同步

一半同步-一半非同步

package com.freeflying.thread.sync;
/**
 * 一半同步,一半非同步
 * @ClassName: SyncAndAsync  
 * @Description:
 * @author freeflying
 * @date 2018年7月2日
 */
public class SyncAndAsync {
	public static void main(String[] args) {
		SyncAndAsyncEx syncAndAsyncEx=new SyncAndAsyncEx();
		SyncAndAsyncExA syncAndAsyncExA=new SyncAndAsyncExA(syncAndAsyncEx);
		syncAndAsyncExA.start();
		SyncAndAsyncExB syncAndAsyncExB=new SyncAndAsyncExB(syncAndAsyncEx);
		syncAndAsyncExB.start();
	}
}
class SyncAndAsyncEx{
	public void method() {
		for(int i=0;i<1000;i++) {
			System.out.println("async threadName:"+Thread.currentThread().getName()+"i"+(i+1));
		}
		synchronized (this) {
			for(int i=0;i<1000;i++) {
				System.out.println("sync threadName:"+Thread.currentThread().getName()+"i"+(i+1));
			}
		}
	}
}
class SyncAndAsyncExA extends Thread{
	private SyncAndAsyncEx syncAndAsyncEx;
	public SyncAndAsyncExA(SyncAndAsyncEx syncAndAsyncEx) {
		this.syncAndAsyncEx=syncAndAsyncEx;
	}
	@Override
	public void run() {
		syncAndAsyncEx.method();
	}
}
class SyncAndAsyncExB extends Thread{
	private SyncAndAsyncEx syncAndAsyncEx;
	public SyncAndAsyncExB(SyncAndAsyncEx syncAndAsyncEx) {
		this.syncAndAsyncEx=syncAndAsyncEx;
	}
	@Override
	public void run() {
		syncAndAsyncEx.method();
	}
}

結果:同步的會同步執行,沒有在同步程式碼塊中的程式碼會非同步執行

相關推薦

synchronized一半同步一半非同步(菜鳥玩執行緒)

synchronized一半同步一半非同步 論證 不在synchronized塊中就是非同步執行,在synchronized塊中就是同步執行。 示例 自定義共享類 package com.chapter02.thread4; public class Task

一半同步-一半非同步

package com.freeflying.thread.sync; /** * 一半同步,一半非同步 * @ClassName: SyncAndAsync * @Description: * @author freeflying * @date 2018年7

Java執行緒-同步非同步的區別

1.                                         &nb

同步非同步、阻塞、非阻塞、並行、併發、共享資源的同步

同步阻塞呼叫:得不到結果不返回,執行緒進入阻塞態等待。 同步非阻塞呼叫:得不到結果不返回,執行緒不阻塞一直在CPU執行。 非同步阻塞呼叫:去到別的執行緒,讓別的執行緒阻塞起來等待結果,自己不阻塞。 非同步非阻塞呼叫:去到別的執行緒,別的執行緒一直在執行,直到得出結果。  

執行緒的同步非同步理解

//當個執行緒訪問同一個資源的時候,要注意執行緒同步的問題,如果不同步容易造成資料沒及時修改,然後就被另一個執行緒訪問,得到的資料還是上一次的資料,造成資料錯誤的情況,以下demo可以很容易發現,為了便於發現我在上面休眠100毫秒,如果將ticket設為方法內的區域性變數則就不會共享了。 pa

IOS 呼叫WebService 同步非同步

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

socket阻塞與非阻塞 同步非同步 I/O模型

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

同步非同步,阻塞,非阻塞

BIO:同步並阻塞,可以通過執行緒池改善 NIO:同步非阻塞,多路複用輪詢,適合連線數多且連結比較短 AIO:非同步非阻塞,客戶端的IO請求都是由OS 完成了再通知伺服器啟動執行緒處理,適合長連線(JDK7開始支援) 同步和非同步是針對應用程式和核心互動而言的,而阻塞和非阻塞針對程序在訪

ajax 的 async 的同步非同步

async 英語釋義為 “非同步,非同步”。在專案中使用時總是忽略了它的存在。 當 async 是設定為 “true(預設狀態)”,即表示非同步進行,在 $.ajax執行時,也會同時執行$.ajax ->url 中的東西(想當於有兩個執行緒同時進行)。 當 async 是設定

socket阻塞與非阻塞,同步非同步、I/O模型(轉載只為查閱方便,若有侵權,立刪)

socket阻塞與非阻塞,同步與非同步 作者:huangguisu     1. 概念理解        在進行網路程式設計時,我們常常見到同步(Sync)/非同步(Async),阻塞(Block)/非阻塞(Unbl

關於js的同步非同步,個人理解

之前對JS的同步和非同步一直搞不清楚,今天看了些文章,談談自己的理解。 非同步函式往往是有等待性質的函式,主流程在執行到等待的時候,為了提高效率,就把這個函式掛起了,放進一個等待的佇列。接著主程式繼續執行後面的函式。 一直執行到主程式佇列裡的函式執行完畢,這時主程式再去查詢等待佇列裡哪個程式等待

什麼是同步非同步,什麼是阻塞和非阻塞

同步和非同步是針對應用程式和核心的互動而言的,同步指的是使用者程序觸發IO操作並等待或者輪詢的去檢視IO操作是否就緒,而非同步是指使用者程序觸發IO操作以後便開始做自己的事情,而當IO操作已經完成的時候會得到IO完成的通知。 以銀行取款為例: 同步:自己親自出馬持銀行卡到銀行取錢(使用同

Node學習基礎(三) 之檔案的同步非同步寫入操作(fs_檔案系統)

下面遇到看不懂的可以去看官方文件。 首先引入fs模組 第二步開啟檔案  官方文件格式是這樣  path 檔案路徑  這裡例子裡是FileHello.txt  如果沒有這個檔案 所以他會自動建立 FileHello.txt

ajax同步非同步簡單的介紹

星期天一個人搗鼓個人網站的事情,read8686.com,如果哪位開發者又歡迎大家一起探討,在文章的有我的微信                      就是這樣的一個註冊的頁面,其

共識演算法——拜占庭問題中的同步非同步

共識演算法——拜占庭問題中的同步、非同步 前言 最近在研究共識演算法,找到原始的paper,在對比拜占庭容錯演算法(BFT)和實用拜占庭容錯演算法(PBFT)的時候談到了同步和非同步。 同步VS非同步 從論文中看,同步實現的難度更大,非同步實現的難度更小。之前學過通訊原理,同

tornado_http同步IO非同步IO

同步IO: from tornado.httpclient import HTTPClient def synchronous(): http_client = HTTPClient() response = http_client.fetch('www.baidu.c

Ajax同步非同步的區別,如何解決跨域問題

同步的概念應該是來自於OS中關於同步的概念:不同程序為協同完成某項工作而在先後次序上調整(通過阻塞,喚醒等方式).同步強調的是順序性.誰先誰後.非同步則不存在這種順序性. 同步:瀏覽器訪問伺服器請求,使用者看得到頁面重新整理,重新發請求,等請求完,頁面重新整理,新內容出現,使用者看到新內容,進行下一步操作。

同步呼叫 非同步呼叫+回撥機制

1 同步呼叫 非同步呼叫+回撥機制 提交任務的兩種方式: 同步呼叫 :提交任務必須等待任務完成,才能執行下一行 非同步呼叫 :提交任務不需要等待任務完成,立即執行下一行 任務執行的三種狀態: 阻塞 阻塞 遇到了IO操作 程式碼卡

同步非同步與阻塞、非阻塞

UNIX下可用的I/O模型: 阻塞式I/O; 非阻塞式I/O; I/O複用(select,poll,epoll…); 訊號驅動式I/O(SIGIO); 非同步I/O(POSIX的aio_系列函式); 阻塞式I/O模型:預設情況下,所有套接字都是阻

阻塞和非阻塞、同步非同步

阻塞和非阻塞 阻塞呼叫是指呼叫結果返回之前,呼叫者會進入阻塞狀態等待。只有在得到結果之後才會返回。 非阻塞呼叫是指在不能立刻得到結果之前,該函式不會阻塞當前執行緒,而會立刻返回。   2.同步與非同步 同步和非同步關注的是訊息通訊機制 (synchronous c