线程锁8问
题目:
- 1 标准访问,请问先打印邮件还是短信? 先邮件后短信
- 2 暂停4秒钟在邮件方法里面,请问先打印邮件还是短信?
- 3 新增普通hello方法,请问先打印邮件还是hello?
- 4 两部手机,请问先打印邮件还是短信?
- 5 两个静态同步方法,1部手机,请问先打印邮件还是短信?
- 6 两个静态同步方法,2部手机,请问先打印邮件还是短信?
- 7 1个静态同步方法,1个普通同步方法,1部手机,请问先打印邮件还是短信?
- 8 1个静态同步方法,1个普通同步方法,2部手机,请问先打印邮件还是短信?
- 1 标准访问,请问先打印邮件还是短信?
先邮件后短信
class Phone {
public synchronized void sendEmail() throws Exception{
System.out.println("---------sendEmail");
}
public synchronized void sendSMS() throws Exception{
System.out.println("---------sendSMS");
}
}
public class Lock8Demo05 {
public static void main(String[] args) throws InterruptedException {
Phone phone1 = new Phone();
new Thread(() -> {
try {
phone1.sendEmail();
}catch (Exception e){
e.printStackTrace();
}
}, " A ").start();
TimeUnit.SECONDS.sleep(1);
new Thread(() -> {
try {
phone1.sendSMS();
}catch (Exception e){
e.printStackTrace();
}
}, " B ").start();
}
}
- 2 暂停4秒钟在邮件方法里面,请问先打印邮件还是短信?
先邮件后短信
class Phone {
public synchronized void sendEmail() throws Exception{
TimeUnit.SECONDS.sleep(4);
System.out.println("---------sendEmail");
}
public synchronized void sendSMS() throws Exception{
System.out.println("---------sendSMS");
}
}
public class Lock8Demo05 {
public static void main(String[] args) throws InterruptedException {
Phone phone1 = new Phone();
new Thread(() -> {
try {
phone1.sendEmail();
}catch (Exception e){
e.printStackTrace();
}
}, " A ").start();
TimeUnit.SECONDS.sleep(1);
new Thread(() -> {
try {
phone1.sendSMS();
}catch (Exception e){
e.printStackTrace();
}
}, " B ").start();
}
}
- 3 新增普通hello方法,请问先打印邮件还是hello?
先hello后邮件
class Phone {
public synchronized void sendEmail() throws Exception{
TimeUnit.SECONDS.sleep(4);
System.out.println("---------sendEmail");
}
public synchronized void sendSMS() throws Exception{
System.out.println("---------sendSMS");
}
public void hello() {
System.out.println("---------hello");
}
}
public class Lock8Demo05 {
public static void main(String[] args) throws InterruptedException {
Phone phone1 = new Phone();
new Thread(() -> {
try {
phone1.sendEmail();
}catch (Exception e){
e.printStackTrace();
}
}, " A ").start();
TimeUnit.SECONDS.sleep(1);
new Thread(() -> {
try {
phone1.hello();
}catch (Exception e){
e.printStackTrace();
}
}, " B ").start();
}
}
- 4 两部手机,请问先打印邮件还是短信?
先短信后邮件
class Phone {
public synchronized void sendEmail() throws Exception{
TimeUnit.SECONDS.sleep(4);
System.out.println("---------sendEmail");
}
public synchronized void sendSMS() throws Exception{
System.out.println("---------sendSMS");
}
public void hello() {
System.out.println("---------hello");
}
}
public class Lock8Demo05 {
public static void main(String[] args) throws InterruptedException {
Phone phone1 = new Phone();
Phone phone2= new Phone();
new Thread(() -> {
try {
phone1.sendEmail();
}catch (Exception e){
e.printStackTrace();
}
}, " A ").start();
TimeUnit.SECONDS.sleep(1);
new Thread(() -> {
try {
phone2.sendSMS();
}catch (Exception e){
e.printStackTrace();
}
}, " B ").start();
}
}
- 5 两个静态同步方法,1部手机,请问先打印邮件还是短信?
先邮件后短信
class Phone {
public static synchronized void sendEmail() throws Exception{
TimeUnit.SECONDS.sleep(4);
System.out.println("---------sendEmail");
}
public static synchronized void sendSMS() throws Exception{
System.out.println("---------sendSMS");
}
public void hello() {
System.out.println("---------hello");
}
}
public class Lock8Demo05 {
public static void main(String[] args) throws InterruptedException {
Phone phone1 = new Phone();
Phone phone2= new Phone();
new Thread(() -> {
try {
phone1.sendEmail();
}catch (Exception e){
e.printStackTrace();
}
}, " A ").start();
TimeUnit.SECONDS.sleep(1);
new Thread(() -> {
try {
phone1.sendSMS();
}catch (Exception e){
e.printStackTrace();
}
}, " B ").start();
}
}
- 6 两个静态同步方法,2部手机,请问先打印邮件还是短信?
先邮件后短信
class Phone {
public static synchronized void sendEmail() throws Exception{
TimeUnit.SECONDS.sleep(4);
System.out.println("---------sendEmail");
}
public static synchronized void sendSMS() throws Exception{
System.out.println("---------sendSMS");
}
public void hello() {
System.out.println("---------hello");
}
}
public class Lock8Demo05 {
public static void main(String[] args) throws InterruptedException {
Phone phone1 = new Phone();
Phone phone2= new Phone();
new Thread(() -> {
try {
phone1.sendEmail();
}catch (Exception e){
e.printStackTrace();
}
}, " A ").start();
TimeUnit.SECONDS.sleep(1);
new Thread(() -> {
try {
phone2.sendSMS();
}catch (Exception e){
e.printStackTrace();
}
}, " B ").start();
}
}
- 7 1个静态同步方法,1个普通同步方法,1部手机,请问先打印邮件还是短信?
先短信后邮件
class Phone {
public static synchronized void sendEmail() throws Exception{
TimeUnit.SECONDS.sleep(4);
System.out.println("---------sendEmail");
}
public synchronized void sendSMS() throws Exception{
System.out.println("---------sendSMS");
}
public void hello() {
System.out.println("---------hello");
}
}
public class Lock8Demo05 {
public static void main(String[] args) throws InterruptedException {
Phone phone1 = new Phone();
new Thread(() -> {
try {
phone1.sendEmail();
}catch (Exception e){
e.printStackTrace();
}
}, " A ").start();
TimeUnit.SECONDS.sleep(1);
new Thread(() -> {
try {
phone1.sendSMS();
}catch (Exception e){
e.printStackTrace();
}
}, " B ").start();
}
}
- 8 1个静态同步方法,1个普通同步方法,2部手机,请问先打印邮件还是短信?
先短信后邮件
class Phone {
public static synchronized void sendEmail() throws Exception{
TimeUnit.SECONDS.sleep(4);
System.out.println("---------sendEmail");
}
public synchronized void sendSMS() throws Exception{
System.out.println("---------sendSMS");
}
public void hello() {
System.out.println("---------hello");
}
}
public class Lock8Demo05 {
public static void main(String[] args) throws InterruptedException {
Phone phone1 = new Phone();
Phone phone2 = new Phone();
new Thread(() -> {
try {
phone1.sendEmail();
}catch (Exception e){
e.printStackTrace();
}
}, " A ").start();
TimeUnit.SECONDS.sleep(1);
new Thread(() -> {
try {
phone2.sendSMS();
}catch (Exception e){
e.printStackTrace();
}
}, " B ").start();
}
}