线程面试题

原创 2013年12月04日 10:21:05

子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程又循环100次,如此循环50次,写出程序?

 

使用Object.wait()和Object.notify()方法实现等待和唤醒功能,实现多线程之间共享数据

package hb.threadcomunicate;

public class SynThread {

	boolean isSub = true;
	
	public synchronized void sub(int loop) {
		while(!isSub){
			try {
				this.wait();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		for (int i = 0; i < 10; i++) {
			System.out.println("sub thread : " + i + ";loop " + loop);
		}
		isSub = false;
		this.notify();
	}

	public synchronized void main(int loop) {
		while(isSub){
			try {
				this.wait();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		for (int i = 0; i < 10; i++) {
			System.out.println("main thread : " + i + ";loop " + loop);
		}
		isSub = true;
		this.notify();
	}

}

 

package hb.threadcomunicate;

public class ThreadCommunicate {

	public static void main(String[] args) {

		final SynThread synThread = new SynThread();

		new Thread(new Runnable() {
			@Override
			public void run() {
				for (int i = 0; i < 50; i++) {
					synThread.sub(i);
				}
			}
		}).start();

		new Thread(new Runnable() {
			@Override
			public void run() {
				for (int i = 0; i < 50; i++) {
					synThread.main(i);
				}
			}
		}).start();

	}

}

 

 

线程常见面试题汇总

一 程序、进程和线程的区别程序 是计算机指令的集合它,以文件的形式存储在磁盘上。进程是一个程序在其 自身的地址空间中的一次执行活动。进程是资源申请、调度和独立运行的单位,因此,它使用系统中的运行资源,...
  • fhm727
  • fhm727
  • 2011年06月20日 10:27
  • 13492

Java多线程面试题归纳

1、线程的基本概念、线程的基本状态以及状态之间的关系
  • hai_cheng001
  • hai_cheng001
  • 2014年07月24日 00:25
  • 9753

多线程的40个面试题总结(上)

周末在微信公共号看到一篇关于《线程的40个道题》的文章,由于今年工作之前参加过几次面试,所以觉得这篇文章总结的很好 只要读者朋友们耐心看完,并且在阅读过程中遇到自己疑惑的地方时自己能动手查一查做一做...
  • u012459345
  • u012459345
  • 2016年04月18日 14:57
  • 14401

java经典多线程面试题

1)现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行? 这个线程问题通常会在第一轮或电话面试阶段被问到,目的是检测你对”join”方法是否熟悉。这个多线程问题...
  • WaterTheGreat
  • WaterTheGreat
  • 2016年10月18日 17:17
  • 494

进程线程面试题总结

1.什么是进程?什么是线程? 进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。...
  • wujiafei_njgcxy
  • wujiafei_njgcxy
  • 2017年08月11日 15:55
  • 1210

多线程经典面试题

多线程在笔试面试中经常出现,下面列出一些公司的多线程笔试面试题。首先是一些概念性的问答题,这些是多线程的基础知识,经常出现在面试中的第一轮面试(我参加2011年腾讯研究院实习生招聘时就被问到了几个概念...
  • jjj19891128
  • jjj19891128
  • 2014年04月24日 10:49
  • 8675

java并发多线程面试题和答案

1.java中有几种方法可以实现一个线程? 两种,一种是实现Runnable接口,另一种是继承Thread 2.如何停止一个正在运行的线程?   this.stop()方法结束线...
  • u010741376
  • u010741376
  • 2015年06月09日 15:21
  • 641

java工程师最新面试题(线程部分)

一般来说,把正在计算机中执行的程序叫做“进程”,所谓的“线程”是指“进程”中某个单一顺序的控制流。 要求读者掌握 1掌握java多线程机制 2.直到进程和线程的区别 3.掌握进程的几种状态 ...
  • shikanong
  • shikanong
  • 2016年03月26日 15:34
  • 1116

【Java多线程与并发库】18.java线程面试题1

现有的程序代码模拟产生了16个日志对象,并且需要运行16秒才能打印完这些日志,请在程序 中增加4个线程去调用parseLog()方法来分头打印这16个日志对象,程序只需要运行4秒即可打印 玩这些日志对...
  • u013517797
  • u013517797
  • 2016年11月10日 15:23
  • 943

进程与线程的区别与联系(经典面试题)

这问题,估计计算机专业的同学在找研发等工作的时候都会遇到过。前几天某老牌软件厂商的电话面试就提到了这一经典问题,今天招聘会上又有不少同学说在面试的时候被问到这点。在这里我就起个头,大家有啥想法意见等都...
  • u012349696
  • u012349696
  • 2016年03月17日 15:26
  • 782
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:线程面试题
举报原因:
原因补充:

(最多只允许输入30个字)