synchronized测试
程序员文章站
2022-06-07 15:28:05
...
1、现有一个简单类UserVo,有两个打印方法。
package main.java.com.ji.test; public class UserVo { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public synchronized void printName() { System.out.println("name ....in ...."); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("name .... = "); } public synchronized void printAge() { System.out.println("age .... in ...."); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("age .... = "); } }
另写了一个测试类
package main.java.com.ji.test; public class MyThread implements Runnable { private UserVo userVo; public MyThread(UserVo userVo) { this.userVo = userVo; } @Override public void run() { userVo.printName(); } public static void main(String[] args) { UserVo userVo = new UserVo(); userVo.setAge(99); userVo.setName("admin....xxx"); UserVo userVo2 = new UserVo(); userVo2.setAge(99222); userVo2.setName("222admin....xxx"); for (int i = 0; i < 10; i++) { new Thread(new MyThread(userVo)).start(); new Thread(new MyThreadAge(userVo)).start(); } } } class MyThreadAge implements Runnable { private UserVo userVo; public MyThreadAge(UserVo userVo) { this.userVo = userVo; } @Override public void run() { userVo.printAge(); } }
2、如果想执行
for (int i = 0; i < 10; i++) { new Thread(new MyThread(userVo)).start(); new Thread(new MyThreadAge(userVo)).start(); }
循环的时候,每个单独的printName和printAge不被打断的话,两个方法前需加关键字synchronized
3、、如果想执行
for (int i = 0; i < 10; i++) { new Thread(new MyThread(userVo)).start(); new Thread(new MyThreadAge(userVo2)).start(); }
循环的时候,每个单独的printName和printAge不被打断的话,两个方法前需加关键字 static synchronized
上一篇: 我和软件结下不解之缘
下一篇: 转:软件的未来
推荐阅读
-
安装、配置和测试Windows,Apache,Informix与PHP服务器的分步指南_PHP教程
-
JMeter对Oracle数据库性能测试方法
-
PHP路由性能测试
-
基于在生产环境中使用php性能测试工具xhprof的详解 游戏性能测试工具 web性能测试工具 网络性能测试工
-
Nibbler ? 免费的网站测试和指标评分工具_html/css_WEB-ITnose
-
渗透测试服务 网站漏洞查找方法
-
PHP删除Array数组里指定的key(完整版,已封装成函数,附测试代码)_PHP教程
-
ucenter整合,通信失败,调试测试排查方法_PHP教程
-
Oracle数据库测试数据插入速度
-
网站web标准测试