国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java synchronize線程安全測(cè)試

瀏覽:162日期:2022-09-02 18:31:22

線程的運(yùn)行是與當(dāng)前CPU的資源調(diào)度與時(shí)間片是有關(guān)系的,當(dāng)一個(gè)線程中的執(zhí)行到某一部分方法的時(shí)候輪到另外一個(gè)線程來(lái)執(zhí)行相應(yīng)的代碼,所以還沒(méi)有等到第一個(gè)線程執(zhí)行完那么CPU有切換到另外一個(gè)線程來(lái)運(yùn)行其相應(yīng)的代碼,所以這個(gè)時(shí)候假如操作公共的數(shù)據(jù)部分就會(huì)出現(xiàn)錯(cuò)誤

為了解決這個(gè)問(wèn)題,可以使用 synchronized 同步代碼塊來(lái)對(duì)公共部分進(jìn)行同步操作

在用synchronize關(guān)鍵字修飾同步代碼塊時(shí),運(yùn)行代碼發(fā)現(xiàn)不能交替賣(mài)票。 以下是初始代碼

package com.itheima.Test;public class Test1a { public static void main(String[] args) { Ticket1a t1=new Ticket1a(); new Thread(t1,'A').start(); new Thread(t1,'B').start(); new Thread(t1,'C').start(); }}class Ticket1a implements Runnable{ int ticket=100; @Override public void run() { synchronized (Ticket1a.class) { while (true) { if (ticket<=0) {break; } try {Thread.sleep(20); } catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace(); }System.out.println(Thread.currentThread().getName()+' sold '+(ticket--)); } } }}

運(yùn)行結(jié)果:

A sold 100A sold 99A sold 98A sold 97A sold 96A sold 95A sold 94A sold 93A sold 92A sold 91...A sold 10A sold 9A sold 8A sold 7A sold 6A sold 5A sold 4A sold 3A sold 2A sold 1

雖然解決了線程的安全問(wèn)題,但是不能實(shí)現(xiàn)三個(gè)窗口交替賣(mài)票。后來(lái)仔細(xì)一看,是synchronize關(guān)鍵字修飾的代碼塊位置不對(duì),相當(dāng)于修飾了同步方法。

更改后:

@Override public void run() { while (true) {synchronized (Ticket1a.class) { if (ticket<=0) {break; } try {Thread.sleep(20); } catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace(); }System.out.println(Thread.currentThread().getName()+' sold '+(ticket--)); } } }

這樣就完成了線程安全的小測(cè)試。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 夹江县| 辽源市| 阜城县| 静海县| 永丰县| 中方县| 江安县| 英吉沙县| 红原县| 扎鲁特旗| 临高县| 天水市| 湟中县| 禹州市| 玉山县| 汽车| 遂川县| 保靖县| 白朗县| 八宿县| 湟中县| 布拖县| 大田县| 乌鲁木齐市| 饶河县| 长沙市| 横山县| 莲花县| 丹东市| 桦川县| 宁陵县| 韩城市| 阿合奇县| 武隆县| 剑河县| 平泉县| 措美县| 鲁山县| 崇明县| 刚察县| 香港|