[javaSE] 看博客學習java并發編程

共享性

多線程操作同一個數據,產生線程安全問題

新建一個類ShareData

設計一個int 型的成員變量count

設計一個成員方法addCount(),把count變量++

在main函數中開啟多個線程操作這個成員變量,在main函數里

獲取ShareData對象,new 出來

?

使用for循環10次,在循環中開啟線程,模擬10個線程并發,在循環內

獲取Thread對象,new出來,構造函數參數:Runable對象

匿名內部類實現Runable接口,重寫run()方法

調用Thread.sleep(1000),使線程睡眠一秒,增加出現問題的概率

使用for循環100次,調用addCount()方法

?

調用Thread.sleep(3),主程序睡眠3秒,保證上面的線程全部執行完了

打印count變量

?

調用Thread對象的start()方法

package com.tsh.mthread;public class Home {public int count;public static void main(String[] args) {final Home home = new Home();for (int i = 0; i < 10; i++) {Thread t = new Thread(new Runnable() {@Overridepublic void run() {for (int j = 0; j < 100; j++) {home.addCount();}try {Thread.sleep(1000);} catch (Exception e) {e.printStackTrace();}System.out.println(Thread.currentThread()+":"+home.count);}});t.start();}// 睡三秒等等上面的try {Thread.sleep(3000);} catch (Exception e) {e.printStackTrace();}System.out.println("總計:" + home.count);}public void addCount() {count++;}
}

?

互斥性

使用synchronized關鍵字修飾上面的addCount()方法,當前線程操作時加把鎖,同時只允許一個訪問者對資源進行訪問,具有唯一性和排他性

    public synchronized void addCount() {count++;}

?

使用synchronized修飾代碼塊

    public void addCount() {synchronized (this) {count++;}}

?

轉載于:https://www.cnblogs.com/taoshihan/p/5431636.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/458760.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/458760.shtml
英文地址,請注明出處:http://en.pswp.cn/news/458760.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

GetProcAddress() LoadLibrary() DLL

GetProcAddress函數檢索指定的動態鏈接庫(DLL)中的輸出庫函數地址。 函數原型&#xff1a; FARPROC GetProcAddress( HMODULE hModule, // DLL模塊句柄 LPCSTR lpProcName // 函數名 ); 參數&#xff1a; hModule [in] 包含此函數的DLL模塊的句柄。LoadLibrary、AfxLoadLibrary…

小學計算機輸入法主題教研設計,《拼音輸入法》教學設計.doc

10.拼音輸入法【教材分析】《拼音輸入法》是浙江攝影出版社出版的新版《小學信息技術》三年級下冊第三單元第10課。信息技術是一門技能課&#xff0c;學以致用是技能課的教學目的&#xff0c;相對來說&#xff0c;在小學生的學習和生活中&#xff0c;用到這項技能的地方還比較少…

圖論測試題(一)第一題:longest

第一題&#xff1a;longest 烏托邦有n個城市&#xff0c;某些城市之間有公路連接。任意兩個城市都可以通過公路直接或者間接到達&#xff0c;并且任意兩個城市之間有且僅有一條路徑&#xff08;What does this imply? A tree!&#xff09;。 每條公路都有自己的長度&#xff0…

RTC實時時鐘驅動

RTC&#xff08;Real-Time Clock)實時時鐘為操作系統提供了一個可靠的時間&#xff0c;并且在斷電的情況下&#xff0c;RTC實時時鐘也可以通過電池供電&#xff0c;一直運行下去。 RTC通過STRB/LDRB這兩個ARM指令向CPU傳送8位數據&#xff08;BCD碼&#xff09;。數據包括秒&am…

Compass樣式重置

1. 全局樣式重置 main.scss文件插入 import "compass/reset"; 對應的生成css為 html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, sa…

計算機表格復制粘貼后不變,excel表格復制粘貼后格式不變

Excel使用過程中經常需要將一個表格內容復制粘貼到其他表格中去。如果原始表格設置了行高和列寬&#xff0c;選中要復制的區域復制后&#xff0c;當在其他表格選擇一個單元格進行粘貼時&#xff0c;行高和列寬就都變了。下面介紹excel表格復制粘貼后格式不變的操作方法。excel表…

C++ Primer章課后編程問題

1、代碼#include<iostream> int main() {using namespace std;int num1;int num2;int total0;cout << "請輸入開始數字\n";cin >> num1;cout << "請輸入結束數字\n";cin >> num2;for (num1; num1<num2; num1)total num1…

vps搭建網站服務器,vps如何架設網站服務器

彈性云服務器 ECS彈性云服務器(Elastic Cloud Server)是一種可隨時自助獲取、可彈性伸縮的云服務器&#xff0c;幫助用戶打造可靠、安全、靈活、高效的應用環境&#xff0c;確保服務持久穩定運行&#xff0c;提升運維效率三年低至5折&#xff0c;多種配置可選了解詳情手工部署D…

vs 常見問題匯總

vs添加對dll的引用 我們在使用vs進行開發調試的時候經常會遇到一個問題&#xff0c;就是當我們的主工程引用到其他工程更新的dll&#xff08;我們經常采用copy到工程目錄的方法&#xff09;、亦或者當我們的多個工程引用到同一個dll文件的時候&#xff0c;我們怎么來配置&#…

斯柯達柯珞克顯示服務器錯誤,斯柯達柯珞克原來還有四驅的版本,不信你看!...

?有望推出四驅版本?專利圖已經曝光?外觀沒有變化斯柯達柯珞克大家應該不會特別陌生&#xff0c;雖然它在前兩個月才正式上市&#xff0c;不過作為一款合資的緊湊型SUV來說&#xff0c;它的關注度還是不錯的。銷量上&#xff0c;4月份交出了2668輛的成績&#xff0c;雖然還不…

javascript實例——鼠標特效篇(包含2個實例)

鼠標是現在電腦的基本配置之一&#xff0c;也是最常用的輸入命令的工具之一。本文將將一些與鼠標有關系的特效。 1、跟隨鼠標移動的彩色星星 如題&#xff0c;會根據鼠標的移動而移動&#xff0c;并在鼠標周圍隨機來回移動&#xff0c;讓人感覺在放大縮小。根據書上的代碼做了一…

Perforce使用指南_forP4V

第一章 前言 Perforce SCM System是一款構建于可伸縮客戶/服務器結構之上的軟件配置管理工具。僅僅應用 TCP/IP&#xff0c;開發人員就能夠通過多種Perforce客戶端&#xff08;幾種平臺的GUI、WEB、或命令行&#xff09;訪問 Perforce服務器。Perforce能夠被快速和容易地部署…

sql語句示例

sql語句示例&#xff1a; 選區指定的列 select 圖書編號,圖書名稱 from 圖書查詢全部信息 select * from 圖書查詢信息之后更改所獲得的列的名稱 select 姓名 as 用戶名, 電話 as 聯系電話 from 用戶也可以這樣 select 用戶名姓名,聯系電話電話 from 用戶對某些列進行計筭后在顯…

曙光服務器優勢,5大核心優勢 探秘曙光Cloudview三大平臺

1Cloudview1.5核心優勢對于云計算而言&#xff0c;國產廠商也有著自己獨到的云方案。曙光Cloudview云計算操作系統采用新一代云計算中心的全新的管理模型&#xff0c;充分考慮云計算中心的資源分配、業務運行和運維服務等各種管理要素&#xff0c;實現云計算中心的軟硬件平臺資…

Centos 下面升級系統內核(轉)

1、導入public key 1rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org2、安裝ELRepo到CentOS 6.6中 1rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm3、安裝長期支持版本 1yum --enablerepoelrepo-kernel install kernel-lt -y4、編輯g…

Mantle--國外程序員最常用的iOS模型字典轉換框架

Mantle簡介 Mantle是iOS和Mac平臺下基于Objective-C編寫的一個簡單高效的模型層框架。 Mantle能做什么 Mantle可以輕松把JSON數據、字典&#xff08;Dictionary&#xff09;和模型&#xff08;即Objective對象&#xff09;之間的相互轉換&#xff0c;支持自定義映射&#xff0c…

C++ assert() 詳解

C assert 宏的應用方式將會在這篇文章中進行詳解 相信對此有興趣的朋友們應該可以根據我們介紹的內容充分掌握這方面的應用技巧。 作為一個經驗豐富的編程人員來說&#xff0c;對于C編程語言應該不會陌生的&#xff0c;實現它的應用可以幫助我們輕松的各種功能需求。 在這里我…

直連測速服務器異常,求證! 網件R7800, Speedtest測速的怪現象,200M寬帶+R7800者進...

本帖最后由 毛毛雨 于 2017-11-18 18:50 編輯寬帶是聯通FTTH 200M&#xff0c;標準千兆網線&#xff0c;千兆網卡。問題前的插曲&#xff1a;R7800剛到手&#xff0c;就迫不及待的換上了&#xff0c;結果&#xff0c;無論是路由器內置Speedtest冊數&#xff0c;還是電腦端的Spe…

iOS socket

為什么80%的碼農都做不了架構師&#xff1f;>>> #import "ViewController.h"interface ViewController ()<NSStreamDelegate,UITextFieldDelegate,UITableViewDataSource,UITableViewDelegate>{NSInputStream *_inputStream;//對應輸入流NSOutputS…

PHP配置,php.ini以及覆蓋問題

在部署一個cms項目到服務器上的時候&#xff0c;因為cms的模板比較老&#xff0c;服務器上用的php是5.3.3版&#xff08;大于5.3&#xff0c;可以認為是新的&#xff09;&#xff0c;有些頁面會顯示“deprecated”類別的錯誤信息。安全起見要抑制頁面中的錯誤信息輸出&#xff…