1. 程式人生 > >一個類有兩個方法,其中一個是同步的,另一個是非同步的; 現在又兩個執行緒A和B,請問:當執行緒A訪問此類的同步方法時,執行緒B是否能訪問此類的非同步方法?

一個類有兩個方法,其中一個是同步的,另一個是非同步的; 現在又兩個執行緒A和B,請問:當執行緒A訪問此類的同步方法時,執行緒B是否能訪問此類的非同步方法?

一個類有兩個方法,其中一個是同步的,另一個是非同步的;
現在又兩個執行緒A和B,請問:當執行緒A訪問此類的同步方法時,執行緒B是否能訪問此類的非同步方法?

答案:可以

驗證

package com.my.test2;

public class ClassA {

    public synchronized void do1()
    {
        //延遲列印,為了更明顯
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(
"synchronized do1"); } public void do2() { System.out.println("do2"); } } package com.my.test2; public class Thread1 extends Thread{ private ClassA classA; public Thread1(ClassA classA) { this.classA = classA; } @Override
public void run() { classA.do1(); } } package com.my.test2; public class Thread2 extends Thread{ private ClassA classA; public Thread2(ClassA classA) { this.classA = classA; } @Override public void run() { classA.do2(); } }
package com.my.test2; public class Test { /** * @param args */ public static void main(String[] args) { ClassA classA = new ClassA(); Thread1 thread1 = new Thread1(classA); Thread2 thread2 = new Thread2(classA); thread1.start(); thread2.start(); } }

執行結果:

do2
synchronized do1   //延遲3秒後輸出

相關推薦

通過js禁止輸入空格(試用場景用字符串拼接插入dom節點onkeyup這些方法都不好使可用這個)

urn lob ria 所有 span returns cas code else if <span style="font-family: Arial, Helvetica, sans-serif;"><input type="password" nam

java 反射 Timestamp型別的屬性值為null設定預設值

import java.beans.PropertyDescriptor; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.sql.Timestamp; class Person {

必殺技報錯資訊看不出原因怎麼辦?

今天遇到了一個錯誤,一般的錯誤提示會很明顯,一看就知道是什麼問題。今天遇到的這個說實話真的不好找原因,一般在這種情況下該怎麼解決呢? 分享下我的思路吧,不一定是最好的,至少有用。 直接上圖吧,下面是報錯資訊: 為了方便檢視,我把最重要的資訊提取出來,如下: org.springframework.bean

一個方法其中一個同步一個是非同步 現在執行AB請問執行A訪問此類同步方法執行B是否訪問此類非同步方法

一個類有兩個方法,其中一個是同步的,另一個是非同步的;現在又兩個執行緒A和B,請問:當執行緒A訪問此類的同步方法時,執行緒B是否能訪問此類的非同步方法? 答案:可以 驗證 package com.my.test2; public class ClassA { public syn

spring IOC一個構造器用構造器注入怎麼解決匹配問題

Car 類寫入兩個構造器(引數不同) package com.beans; public class Car { private String brand; private String corp; private double price

刪除檔案提示檔案已在一個程式中開啟而導致檔案無法刪除怎麼辦

今天下載的一個檔案恢復軟體工具,之後不好用想刪掉就出現上面情況,怎麼刪啊,刪除時候就提示“檔案已經在另一個程式中開啟”,有圖,系統win7, 由於檔案正在開啟著,所以無法刪除,解決辦法如下: 1:關閉開啟該檔案的程式,如果不知道該程式被誰佔用,可以通過工作管理員-->

/var/run/yum.pid 已被鎖定PID 為 XXXXX 的一個程式正在執行

刪除jdk時終端提示 /var/run/yum.pid已被鎖定,PID 為 XXXXX 的另一個程式正在執行 解決方法: 直接在終端執行 rm -f/var/run/yum.pid 將該檔案刪除,然

input中的type值為file各瀏覽器的表現形式不同

button tex ati color 不同 ack 需要 標簽 圖片 如果想使各瀏覽器下的表現形式相同,需要對該input元素隱藏,然後再改元素下方添加標簽。其html寫法如下 <div class="input-file"> <input type

【轉】編寫高質量代碼改善C#程序的157建議——建議141不知道該不該用大括號就用

body pos 高質量 一行 ron strong gpo clas div 建議141:不知道該不該用大括號時,就用 如果if條件語句只有一行語句,要不要使用大括號? 答案是:建議使用。一個括號不會增加多少代碼,但是卻讓代碼看上去增加了一致性。括號本身只會讓代碼更具

我們輸入一條 SQL 查詢語句發生了什麼?

  我們經常說,看一個事兒千萬不要直接陷入細節裡,你應該先鳥瞰其全貌,這樣能夠幫助你從高維度理解問題。同樣,對於 MySQL 的學習也是這樣。平時我們使用資料庫,看到的通常都是一個整體。比如,你有個最簡單的表,表裡只有一個 ID 欄位,在執行下面這個查詢語句時:  複製程式

C++對結構體中字元陣列賦值出現表示式必須是可修改的左值的問題

問題描述:         在C++中為結構體中的字元陣列賦值時,出現”表示式必須是可修改的左值“的錯誤提醒,編譯報錯“不可指定資料型別”。           &n

Jboot v1.7.5 釋出Spring Cloud 之外的一個選擇

   Jboot 是一個基於 JFinal 和 Undertow 開發的微服務框架。提供了 AOP、RPC、分散式快取、限流、降級、熔斷、統一配置中心、Opentracing 資料追蹤、metrics 資料監控、分散式 session、程式碼生成器、shiro 和 jwt 安全

我們討論TCP的連線運輸管理我們在說什麼

TCP連線管理概述 TCP是面向連線的協議。運輸連線是用來傳送TCP報文的。TCP的連線和釋放是每一次面向連線的通訊中必不可少的過程。因此,運輸連線就有三個階段,即:連線建立,資料傳輸和連線釋放。運輸連線的管理就是使運輸連線的建立和釋放都可以正常的進行。 在TCP連線的建立過程中要解決一下三個問題。 1

你工作遇到以下幾種狀態請果斷跳槽走人

                                          &nb

一個頁面如何跳轉到一個頁面的指定tab選項卡

傳遞對於tab的下標過去就行了,然後獲取對應的li trigger下click事件,如果是滑鼠移動切換的trigger mouseover事件,類似下面的 以下程式碼需要匯入jquery <

訪問WEB首頁每個請求會發送2次請求到後臺的原因

最近做福建WEB話單功能時發現訪問WEB首頁時,每個請求會發送2次請求到後臺,俺表示非常的費解,用FF debug後現象如下:發現首頁被請求了2次,後來經過除錯後發現HTML中有這麼一段:當img標籤中src屬性為一個空字串時會產生這個多出來的請求!!產生此問題的HTML:s

一個檔案讀取內容計算出結果將結果寫入到一個檔案中

/* * 專案根路徑下有個questions.txt檔案內容如下: 5+5 [ 5, 5] 150-25 155*155 2555/5 要求:讀取內容計算出結果,將結果寫入到results

一個頁面上一塊區域上顯示一個頁面(或者檔案)的內容

按鈕的內容:<input name="butt" value="統計" type="button" id="change" onclick="change()" />給了一個onclick事件觸發js的程式碼。iframe框的內容:(注意,在這個div上還有一個父div!)<div clas

question 1在除錯Tensorflow的tensorboard視覺化程式在瀏覽器中輸入localhost:6006顯示無法載入

針對以上問題,解決方法: 步驟1.首先安裝一個很好用的軟體,搜尋Everything,這是為了搜尋檔案路勁用的。 步驟2.在剛剛的安裝的軟體中搜索:tensorboard, 然後選中tensorboard.exe檔案,然後右鍵,然後選擇“開啟路勁”,此時就找到了這個

bridge下介面eth0單獨設定IP為了保證LAN PC可以連線WANPC

一般情況下,是在bridge中設定IP地址,如果把網路介面如eth0/1,ath*等掛在該bridge之下,所有bridge的介面公用一個IP。 而下面情況則不同。 環境: 為了保證LAN-PC可以連線WAN-PC;需要做如下工作: 1、  讓LAN-PC可以訪問到N