1、我有一个单例的类,里面有一个方法m,m这个方法要执行很长时间,现在有1,2两个线程,假如1线程先去调用m方法,2线程也要去调用,2线程是等1线程调用完之后才去调用方法还是根据时间片1,2线程切换调用。
2、我有一个类,有一个成员变量:private HashTable ht;(hashtable是线程安全的),现在有两个方法a,b。
a方法中有一行读取变量ht的代码,b方法中有一行对ht修改的代码,
现有两个线程1,2,1去调用a,2去调用b。
当a方法先被调用但还没有执行到对ht读取的代码,这时候b方法被2线程调用并执行到修改ht那一行代码。此时会出现什么情况,是等待 还是别的
2、我有一个类,有一个成员变量:private HashTable ht;(hashtable是线程安全的),现在有两个方法a,b。
a方法中有一行读取变量ht的代码,b方法中有一行对ht修改的代码,
现有两个线程1,2,1去调用a,2去调用b。
当a方法先被调用但还没有执行到对ht读取的代码,这时候b方法被2线程调用并执行到修改ht那一行代码。此时会出现什么情况,是等待 还是别的
2.由于是ht私有,所以两线程无关,各自做各自的ht
是指A和B由同一个方法取同一个的对象,还是A和B由同一个方法里面new出来的?
java API 是这样说的,一个线程start之后,再次start是没用的。所以表面看是两个,其实还是一个线程在跑。
所以是没问题的
假如说现在有一个
public void a(String userName){
User user = new User();
user.setUserName(userName);
for(int i= 0;i<10000000;i++){
}
System.out.println(user.getUserName());
}此时有两个线程1,2当1线程(传入“111”)将要执行完for循环的时候,
2线程(传入“222”)执行了 user.setUserName(userName);此时1线程打印什么内容
请详细说下原理,谢谢
是否User user = new User();两个线程new出的user对象被分别存在1,2线程中(threadLocal)