永发信息网

synchronized的使用举例。如果不使用synchronized会怎样?

答案:2  悬赏:0  手机版
解决时间 2021-01-28 07:11
百度了几下,大致都能把那几句话背了,就是保证同一时刻只能有一个线程执行被synchronized修饰的函数。
可是加不加synchronized有什么区别呢,执行结果是否会不同呢,麻烦举个例才能知道。
如下例子,按照我的理解,应该是一个线程(D1或D2)从1输出到9后,然后另一个线程才从1输出到9后,然后结果是交替输出。麻烦指出一个不加synchronized的不同之处的例子。
package bacd;
public class Demo extends Thread
{
public void run()
{
for (int i = 0; i < 10; i++)
System.out.print(i + " ");
}
public static void main(String[] args)
{
Demo D1 = new Demo();
Demo D2 = new Demo();
D1.start();
D2.start();
}
}
最佳答案
synchronized是保证线程安全 就是在当多个线程操作同一资源时保证某一时刻只能有一个线程在执行这个任务

你这个虽然开了多个线程 但是并没有操作同一资源
举例吧:买火车票 2个窗口卖 假定有张票的ID为80 如果没有synchronized这个锁来控制 那有可能导致2个窗口同时都把ID为80的这张票卖出去 这不乱套了嘛 那不就有2张ID为80的票了?
有了synchronized就只有当一个窗口卖完了 释放了synchronized这个锁 其他窗口才能来卖票 这时ID为80的票已经被卖出去了 也就只能卖其他的了

至于你说的交替输出 应为CPU在决定哪个线程运行是随时随机跳动的
全部回答
//synchromized package mypackage; class a { synchronized void get() { system.out.println("a"); system.out.println("b"); } synchronized void put() { system.out.println("c"); system.out.println("d"); } } class get implements runnable { thread t; a temp; get(a a) { temp = a; t = new thread(this); t.start(); } public void run() { temp.get(); } } class put implements runnable { thread t; a temp; put(a a) { temp = a; t = new thread(this); t.start(); } public void run() { temp.put(); } } class myjava { static public void main(string args[]) { a o = new a(); get o1 = new get(o); put o2 = new put(o); try { o1.t.join(); o2.t.join(); } catch (interruptedexception e) { system.out.println("interrupted!"); } } } synchronized就是把一个线程调用的方法放在一个锁里面,让别的线程在方法返回前不能调用这个方法,但是要注意put和get里用的是同一个a实例,是由main方法传递上来的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
重庆 奉节县 架空步行街申通快递能到吗
中湍村地址有知道的么?有点事想过去
低血压是什么症状
阴土的意思是什么啊?知道的请说下!
手机膜有哪几种 具体那种好
怀孕一个月多会有恶心状态,可以吃盐津梅吗
DNF不充钱,哪些职业最废
鸿兴宾馆(细阳中路)地址在哪,我要去那里办事
堂里坞村怎么去啊,我要去那办事
用不锈钢锅制作酸梅汤可以吗?
下列语句中,描述南方地区景观的是A.千里冰封
求大神把这个人的p到皮皮虾上面
你好请问梭边鱼该怎么养才活的时间久些
腿法中为什么直线腿法在街头不容易被抱腿?比
品尚商务宾馆(阜阳太和)地址在什么地方,我要
推荐资讯
晚上的血压水平多少标准?
【联讯读报】...—联讯读报4.0取得新突破。借
苹果ipad激活锁怎么打开ipad
银行卡吞了,已经口头挂失,到期了可不可以取
i3 3217u,celeron 1037u和celeron j1900那个
屯积的意思是什么啊?知道的请说下!
下列各项中细菌和真菌都具有的特征是CA. 细菌
日日通电话交换机怎么设置
看议的意思是什么啊?知道的请说下!
ip route-cache对应华为的交换机是什么命令
农历的闰月是怎么算的,有什么公式吗?
济源粉丝厂在职城哪里?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?