关于java多线程的问题。。新人求解答
看书看到多线程的时候,书上讲到了线程同步的内容,然后是举了个例子,代码如下
class My implements Runnable{
private int count =0;
public void run(){
test();
}
private void test(){
for(int i=0;i<10;i++){
count++;
Thread.yield();
count--;
System.out.println(count);
}
}
}
public class Test {
public static void main(String args[]) throws InterruptedException{
My t=new My();
Thread t1=new Thread(t);
Thread t2=new Thread(t);
t1.start();
t2.start();
}
}
书上给的例子是运行结果变得很奇怪,打印了很多-1,没什么规律,但是我自己测试时全都是0 ,- -。书上后面加了Synchronized关键字说是运行结果全为0,不知道这是为什么。
还有t1,t2不是两个对象么?他们的count为什么是共享的?
嫩鸟求救啊,谢谢了。
class My implements Runnable{
private int count =0;
public void run(){
test();
}
private void test(){
for(int i=0;i<10;i++){
count++;
Thread.yield();
count--;
System.out.println(count);
}
}
}
public class Test {
public static void main(String args[]) throws InterruptedException{
My t=new My();
Thread t1=new Thread(t);
Thread t2=new Thread(t);
t1.start();
t2.start();
}
}
书上给的例子是运行结果变得很奇怪,打印了很多-1,没什么规律,但是我自己测试时全都是0 ,- -。书上后面加了Synchronized关键字说是运行结果全为0,不知道这是为什么。
还有t1,t2不是两个对象么?他们的count为什么是共享的?
嫩鸟求救啊,谢谢了。
...全文
相关推荐
Java程序设计_教材习题解答.doc
Java程序设计是一个涵盖广泛的主题,包括编程基础、语法特性、面向对象编程概念、类与对象、数据类型、控制结构、异常处理、输入输出、集合框架、多线程、网络编程等多个方面。
java面试题目
**多线程选择题**:考察线程的创建和执行,以及Java中的匿名内部类和重写run()方法。
hacker-rank:来自hackerrank.com的问题的教程和解决方案
理解和掌握这些,能提高解决问题的能力。10. **多线程**:Java提供了丰富的多线程API,了解线程同步、死锁和并发编程的概念对构建高性能应用非常重要。
Java面试题.docx
这里不再逐一展开,每个问题都需要根据Java语言规范进行解答。
个人总结40个Java多线程面试问题和答案
Java多线程面试问题和答案总结Java多线程是一种高级的编程技术,能够充分发挥多核CPU的优势,防止阻塞,简化模型建立,提高程序的效率和可维护性。


Java SE
