• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Java多線程編程中數(shù)據(jù)安全的應用研究

      2021-02-26 14:54:24
      科學與信息化 2021年4期
      關鍵詞:程序運行線程數(shù)據(jù)安全

      廣州東華職業(yè)學院軟件工程學院 廣東 廣州 510000

      引言

      如今,Java多線程編程在很多軟件開發(fā)設計中得到了普遍應用,它不僅在多處理計算機系統(tǒng)中可以實現(xiàn)多個線程并行執(zhí)行,充分利用多處理技術提高程序的執(zhí)行效率,而且還可以提高系統(tǒng)資源的利用率。但是,在Java多線程編程過程中,由于同時有多個線程并發(fā)執(zhí)行,有時會帶來嚴重的問題,甚至引發(fā)錯誤。例如由于資源共享而容易導致的數(shù)據(jù)安全問題。因此,深入探討并研究Java多線程編程中的數(shù)據(jù)安全,確保數(shù)據(jù)的有效性是十分重要的。

      線程:

      (1)線程的概念

      程序:是一段靜態(tài)的代碼,是為完成特定任務,用某種語言編寫的一組指令的集合。

      進程:是程序的一次執(zhí)行過程,對應從代碼的加載、執(zhí)行至執(zhí)行完畢的一個完整過程。

      線程:是程序中一個單一的順序控制流程,它是程序運行的基本執(zhí)行單元。

      線程是比進程還小的單位。線程有它自己的入口和出口,以及一個順序執(zhí)行的序列。線程不能獨立存在,必須存在于進程中。

      (2)Java多線程的實現(xiàn)

      1 Java多線程機制

      多線程編程模型仍是目前計算機架構最重要的模型,作為系統(tǒng)應用程序要發(fā)揮CPU的最大性能,就是要改變多線程編程模型為主的并行處理系統(tǒng)和并發(fā)式應用程序。多線程編程的目的就是最大限度地利用CPU 資源,提高程序執(zhí)行效率。

      Java的多線程機制能夠很方便地創(chuàng)建和運行多個獨立線程的程序,并且可以創(chuàng)建多個同步線程,實現(xiàn)多個任務的同步執(zhí)行,這一機制對實現(xiàn)資源共享、防止“死鎖”程序的出現(xiàn)極為有用。

      在實際應用中,一個程序往往要并發(fā)處理多個任務。例如在實際網(wǎng)絡應用中,一個服務器程序同一時刻不可能只對一個用戶服務,一個優(yōu)秀的網(wǎng)絡服務程序必須能夠同時響應多個用戶請求,實現(xiàn)并發(fā)服務。

      Java多線程機制的基本特征就是多個線程并發(fā)運行,各線程之間可能會共享資源,也可能要相互合作共同完成某一項任務,那么如何控制這些多線程在具體運行的過程中不產(chǎn)生沖突,是多線程編程過程中必須解決的問題,否則可能會導致程序運行的結果不正確,甚至造成死鎖問題。

      2 Java多線程程序的數(shù)據(jù)安全

      在多線程程序中,由于同時有多個線程并發(fā)執(zhí)行,會造成訪問沖突,使應用程序中數(shù)據(jù)的一致性被破壞。因此,必須保證數(shù)據(jù)的有效性和一致性。下面從幾種具體情況分析討論基于Java多線程編程中可能出現(xiàn)的數(shù)據(jù)安全問題[1]。

      2.1 線程對象中的數(shù)據(jù)安全

      雖然在普遍Java應用程序中,對于普通變量、類成員變量、靜態(tài)變量等可以選擇使用訪問權限修飾符public、protected和private 等來控制對變量的訪問。但是在Java多線程程序中,這些常規(guī)的數(shù)據(jù)保護措施將不能有效地保護數(shù)據(jù)安全。例如:

      程序運行結果為:

      線程Thread-0 中的成員變量str為:null。

      線程Thread-1 中的成員變量str為:null從結果上看,與理想值不符,發(fā)生這種情況的原因是當線程對象t1調用start()方法后就立刻輸出了str 的值,而這里run()方法還沒有執(zhí)行到為str 賦值的語句。

      要避免這種情況的發(fā)生,就需要等run()方法執(zhí)行完后才執(zhí)行輸出str的代碼。這就是Java多線程程序的異步執(zhí)行機制造成的數(shù)據(jù)安全問題。這種情況下,可以通過使用Thread 類的join()方法解決,join()方法的作用是等待線程執(zhí)行完畢,從執(zhí)行效果上看,使得線程從異步執(zhí)行變成同步執(zhí)行,而當線程變成同步執(zhí)行后,普通對象中的數(shù)據(jù)就安全了。改進后的程序代碼如下:

      程序運行結果為:

      線程Thread-0 中的成員變量str 為:這是成員變量的數(shù)據(jù)線程Thread-1 中的成員變量str 為:這是成員變量的數(shù)據(jù)顯然,程序運行結果與理想值是一致的,也就是說線程對象中的數(shù)據(jù)是安全的。

      2.2 共享資源中的數(shù)據(jù)安全

      2.3 線程通信時的數(shù)據(jù)安全

      在多線程程序的執(zhí)行過程中,對于多個并發(fā)執(zhí)行的線程,如果它們之間存在相互依賴或者次序上的關系,這就要求多線程之間有效通信、相互協(xié)調,共同完成某項任務。因此,在實現(xiàn)線程間的相互通信時,保證線程交互中相關數(shù)據(jù)安全是很關鍵的[2]。

      3 結束語

      通過對Java多線程并發(fā)機制的深入分析與探討進一步理解了Java多線程程序中的數(shù)據(jù)安全問題,指出了在利用Java多線程技術進行實際編程過程中容易出現(xiàn)的數(shù)據(jù)安全問題以及相應的解決方法,并結合實例分析說明如何采用最佳的編碼方案來解決Java多線程編程中的數(shù)據(jù)安全問題。在應用程序的實際開發(fā)設計過程中,合理、有效地利用多線程編程,可以更加充分地利用計算機系統(tǒng)資源、提高程序性能及運行效率。

      猜你喜歡
      程序運行線程數(shù)據(jù)安全
      行政公益訴訟訴前程序運行檢視
      法大研究生(2020年2期)2020-01-19 01:43:04
      云計算中基于用戶隱私的數(shù)據(jù)安全保護方法
      電子制作(2019年14期)2019-08-20 05:43:42
      建立激勵相容機制保護數(shù)據(jù)安全
      當代貴州(2018年21期)2018-08-29 00:47:20
      大數(shù)據(jù)云計算環(huán)境下的數(shù)據(jù)安全
      電子制作(2017年20期)2017-04-26 06:57:48
      淺談linux多線程協(xié)作
      論刑事錯案的成因
      大數(shù)據(jù)安全搜索與共享
      《刑事訴訟法》修改背景下刑事和解制度淺析
      Linux線程實現(xiàn)技術研究
      么移動中間件線程池并發(fā)機制優(yōu)化改進
      九江县| 大洼县| 临安市| 兴隆县| 鹿邑县| 瑞丽市| 东丽区| 剑河县| 宁国市| 白银市| 关岭| 哈尔滨市| 罗城| 丰城市| 景德镇市| 诸城市| 福州市| 平和县| 北宁市| 新乐市| 临夏市| 松潘县| 桂阳县| 宝清县| 青铜峡市| 海南省| 东台市| 涟源市| 穆棱市| 济源市| 睢宁县| 祥云县| 万全县| 余干县| 紫云| 天镇县| 高要市| 大化| 肇东市| 襄樊市| 伊吾县|