面试题多线程(java面试题:请用多线程显示,每三个数字为一组,直到30.)

本文目录
java面试题:请用多线程显示,每三个数字为一组,直到30.
public class Test{
public static Object obj = new Object();
public static void main(String args){
new A().start();
new B().start();
}
}
class A extends Thread{
public void run(){
try{
synchronized(Test.obj){
for(int i = 1 ; i 《 31;i += 6){
Test.obj.notify();
System.out.println("线程A:"+ i);
System.out.println("线程A:"+ (i+1));
System.out.println("线程A:"+ (i+2));
Test.obj.wait();
}
}
}catch(Exception e){
e.printStackTrace();
}
}
}
class B extends Thread{
public void run(){
try{
synchronized(Test.obj){
for(int i = 4 ; i 《 31;i += 6){
Test.obj.notify();
System.out.println("线程B:"+ i);
System.out.println("线程B:"+ (i+1));
System.out.println("线程B:"+ (i+2));
Test.obj.wait();
}
}
}catch(Exception e){
e.printStackTrace();
}
}
}
求教一个百度的面试题,关于多线程单例模式的
多线程的单例问题非常类似consensus问题:一堆进程进入,退出时的状态必须是第一个进入之后的初始化过的状态。那么用原子操作应当很容易实现。随便想了一下,用两个原子计数,一个表示对象是不是ready,另一个表示是不是正在初始化:
if (fetch(obj_ready))
{
return obj;
}
else
{
// 如果没有人在构建,就去构建
if (fetch_and_set(obj_under_build,true) == false)
{
obj = new obj();
set(obj_ready, true);
return obj;
}
// 否则退出
else
{
return nullptr;
}
}
即使不用锁,也必然有某种排它机制,因为对象正在初始化的时候是不可用的。这时候如果又有人来访问它,要么让访问者等待,要么把访问者踹出去。
C面试题:单线程与多线程的问题
不是,前提是你又足够的空间或者速度。比如说一条路,很多车要过,要是路很宽的话,当时是很多车一起过才效率高了,但是要是路很窄的话,那肯定是不能很多车一起过的了。就好想现在还在研究超级电脑,大型的那种数据系统,普通的电脑就是单线程来处理也不够用啊!

更多文章:
form表单制作(为什么制作的form表单会在网页显示中多出一行)
2026年10月11日 09:10
teammate(teammate,company,partner)
2026年10月11日 06:10
javascript arraybuffer(javascript可以把base64编码转换成二进制代码吗求示例代码!)
2026年10月11日 04:00
text函数公式(excel中round和text函数的区别是什么)
2026年10月11日 03:50
google chrome打不开(chrome浏览器打不开怎么回事 浏览器打不开的处理方法)
2026年10月11日 02:00
websocket整合springboot(Springboot整合Websocket遇到的坑)
2026年10月11日 01:40
drawerlayout(android 怎样让drawerlayout设置的侧滑菜单的内容充满屏幕)
2026年10月10日 19:20
xor四位数怎么运算(单片机怎样用C语言实现4个数字间的异或)
2026年10月10日 17:50



