eclipse中创建maven项目
程序员文章站
2024-03-21 17:45:34
...
代码如下
package chapterTwo.synchronize;
import chapterTwo.synchronizeUtils.Service;
import chapterTwo.synchronizeUtils.*;
public class Run {
public static void main(String[] args){
Service service = new Service();
ThreadA threadA = new ThreadA(service);
threadA.setName("A");
threadA.start();
ThreadB ThreadB = new ThreadB(service);
ThreadB.setName("B");
ThreadB.start();
ThreadC ThreadC = new ThreadC(service);
ThreadC.setName("C");
ThreadC.start();
}
}
----------
package chapterTwo.synchronizeUtils;
public class ThreadA extends Thread {
private Service service;
public ThreadA(Service service) {
super();
this.service = service;
}
@Override
public void run(){
super.run();
service.printA();
}
}
-----------
package chapterTwo.synchronizeUtils;
public class ThreadB extends Thread {
private Service service;
public ThreadB(Service service) {
super();
this.service = service;
}
@Override
public void run(){
super.run();
service.printB();
}
}
----------
package chapterTwo.synchronizeUtils;
public class ThreadC extends Thread {
private Service service;
public ThreadC(Service service) {
super();
this.service = service;
}
@Override
public void run(){
super.run();
service.printC();
}
}
------------
package chapterTwo.synchronizeUtils;
public class Service {
//Service类锁
synchronized public static void printA(){
try {
System.out.println("线程:" + Thread.currentThread().getName() + ",进入printA方法。");
Thread.sleep(3000);
System.out.println("线程:" + Thread.currentThread().getName() + ",离开printA方法。");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//Service类锁 ,同一个类的类锁方法与类锁方法同步
synchronized public static void printB(){
try {
System.out.println("线程:" + Thread.currentThread().getName() + ",进入printB方法。");
Thread.sleep(3000);
System.out.println("线程:" + Thread.currentThread().getName() + ",离开printB方法。");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//对象锁,与类锁不同步,即这个类的对象调用这个类的类锁方法与对象锁方法不同步
synchronized public void printC(){
try {
System.out.println("线程:" + Thread.currentThread().getName() + ",进入printC方法。");
Thread.sleep(3000);
System.out.println("线程:" + Thread.currentThread().getName() + ",离开printC方法。");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
结果:
总结:
- 同一个类的类锁方法及代码块是同步的。
- 同一个类的对象锁和类锁方法及代码块是不同步的。
推荐阅读
-
eclipse中创建maven项目
-
Maven3 创建项目 博客分类: Java maven3java构建项目
-
eclipse中开发Hadoop2.x的Map/Reduce项目汇总 博客分类: Hadoop Hadoop
-
Eclipse中把普通项目转化为Web项目 博客分类: Eclipse eclipse转化Web项目
-
Eclipse中把普通项目转化为Web项目 博客分类: Eclipse eclipse转化Web项目
-
eclipse中创建JUnit简单实例
-
Eclipse将第三方jar包插件和项目一起发布到web容器中 博客分类: eclipse eclipseweblogic.servlet.jsp.CompilationExceptionjsp编译问题
-
Eclipse将第三方jar包插件和项目一起发布到web容器中 博客分类: eclipse eclipseweblogic.servlet.jsp.CompilationExceptionjsp编译问题
-
创建Maven Web项目及文件夹配置
-
解决Eclipse建立Maven项目后无法建立src/main/java资源文件夹的办法 博客分类: java 语言maven