线程同步子主切换面试题

转载 2018年04月16日 17:11:56

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

package cn.itcast.heima2;

import java.util.concurrent.atomic.AtomicInteger;

public class TraditionalThreadCommunication {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//oop思想抽取线程同步代码,并进行调用,
		final Business business = new Business();
		new Thread(
				new Runnable() {
					
					@Override
					public void run() {
					
						for(int i=1;i<=50;i++){
							business.sub(i);
						}
						
					}
				}
		).start();
		
		for(int i=1;i<=50;i++){
			business.main(i);
		}
		
	}

}
 //抽取对象 business 写入主线程方法 main 子线程方法 sub
  class Business {
           //定义变量  bshowsub 如果为false子线程等待  主线程走  如果为true主线程等待 子线程走
	  private boolean bShouldSub = true;
	  public synchronized void sub(int i){
		  while(!bShouldSub){
			  try {
				this.wait();
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		  }
			for(int j=1;j<=10;j++){
				System.out.println("sub thread sequence of " + j + ",loop of " + i);
			}
		  bShouldSub = false;
		  this.notify();
	  }
	  
	  public synchronized void main(int i){
		  	while(bShouldSub){
		  		try {
					this.wait();
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
		  	}
			for(int j=1;j<=100;j++){
				System.out.println("main thread sequence of " + j + ",loop of " + i);
			}
			bShouldSub = true;
			this.notify();
	  }
  }


把图像文件上传到数据库,并从数据库读出

上传图片到数据库:using System;using System.Collections;using System.ComponentModel;using System.Data;using S...
  • wildhorse01
  • wildhorse01
  • 2002-06-26 09:23:00
  • 1047

线程同步的方法有哪些(面试题)

线程同步:    由于同一个进程的多个线程共享同一片存储空间。在带来方便的同时,也带来了如访问冲突问题,如何解决,解决方法有几种?      第一种:           采用synchroni...
  • wolfking0608
  • wolfking0608
  • 2017-04-18 21:38:23
  • 468

Android面试题——多线程,同步的实现,wait和sleep的不同

多线程是操作系统的重要部分,可以提高应用程序的效率,将耗时操作放在工作线程可以有效提高用户体验。 多线程有两种实现方式:分别是继承Thread类和实现Runnable接口。 同步的实现方式有两种:...
  • qq_32795669
  • qq_32795669
  • 2016-04-24 22:54:50
  • 841

Java经典面试题(其二)——Java线程同步方式和线程本地变量

Java线程同步方式和线程本地变量——Java经典面试题(其二)实现线程同步的几种方式1.为何要使用同步? Java允许多线程并发控制,当多个线程同时操作一个可共享资源变量时(如数据的增删改查),...
  • sun1021873926
  • sun1021873926
  • 2017-09-08 20:14:39
  • 722

android从子页面跳转回主页面注意

我们做项目中很多时候需要从子页面跳转回主页面HomeActivity,不能简单的starActivity(),这样做会在原有的栈中继续添加一个HomeActivity 要清空原来栈中的数据,才具...
  • tsdfk1455
  • tsdfk1455
  • 2013-12-10 18:09:01
  • 987

MFC切换子界面

在Dialog程序中,子界面通常是一些子控件,这些控件在切换的时候通常是隐藏其他,显示要显示的控件来做到的。下面的例子有两个按钮,分别控制两个静态文本的显示(点击按钮1会显示文本1,点击文本2会显示文...
  • ClamReason
  • ClamReason
  • 2015-02-13 11:31:43
  • 1704

MFC实现子对话框间切换。

1.新建MFC工程zidlg,添加四个对话框资源,分别为它们新建类CChildDlg1,CChildDlg2,CChildDlg3,CChildDlg4。设置每个对话框的style为child型。 2...
  • qq_33335872
  • qq_33335872
  • 2016-11-21 13:40:04
  • 1484

java面试题(一)

  • 2013年10月16日 10:48
  • 15KB
  • 下载

c++并发编程:面试题-线程同步

是否熟悉POSIX多线程编程技术?如熟悉,编写程序完成如下功能: 1)有一int型全局变量g_Flag初始值为0; 2) 在主线称中起动线程1,打印“this is thread1”,并将...
  • Watson2016
  • Watson2016
  • 2016-10-18 10:48:10
  • 1691

有关线程互斥与同步面试题

线程互斥 线程同步 java 题
  • qq_33248299
  • qq_33248299
  • 2017-11-29 23:52:10
  • 97
收藏助手
不良信息举报
您举报文章:线程同步子主切换面试题
举报原因:
原因补充:

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