`
747017186
  • 浏览: 331592 次
社区版块
存档分类
最新评论

java多线程操作

    博客分类:
  • java
 
阅读更多

java多线程操作,对于具体的操作应当把业务代码作为一个业务类进行操作。在业务类里面进行线程的互斥同步操作。具体的看下面的例子:

package test.client;

public class Test2018 {
	public static void main(String[] args) {
		final ThreadTask threadTask = new ThreadTask();//业务任务对象
		new Thread(new Runnable() {
			@Override
			public void run() {
				for(int i=0;i<50;i++){
					threadTask.loopTask();//子线程任务
				}
			}
		}).start();
		for(int i=0;i<50;i++){
			threadTask.mainTask();//主线程任务
		}
	}
}

class ThreadTask{
	private boolean flag = true;//主线程、子线程运行标志
	public synchronized void loopTask() {
		while(!flag){//防止线程虚假唤醒
			try {
				this.wait();//线程等待
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		for(int i=1;i<=100;i++) {
			System.out.println("子线程执行:"+i);
		}
		flag = false;
		this.notify();//唤醒线程
	}
	public synchronized void mainTask() {
		while(flag){
			try {
				this.wait();
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		for(int i=1;i<=50;i++) {
			System.out.println("主线程执行:"+i);
		}
		flag = true;
		this.notify();
	}
}

 注意点:两个线程之间的有序通信需要线程进行等待和唤醒。

比如一个线程被等待了,它能被另一个线程唤醒,也可以自己醒来(伪唤醒)。我们可以在两个线程之间设置一个私有变量,无论是被唤醒还是自己伪唤醒的都会检查一下这个变量咱去执行自己的代码,这样会变得很安全。

每个业务方法都会加上synchronized这样方法的 实例就会像被对象一样的进行锁定。

分享到:
评论

相关推荐

    java 多线程操作数据库

    ### Java多线程操作数据库:深入解析与应用 在当今高度并发的应用环境中,Java多线程技术被广泛应用于处理数据库操作,以提升系统的响应速度和处理能力。本文将基于一个具体的Java多线程操作数据库的应用程序,深入...

    JAVA多线程操作方法实用大全

    总的来说,Java多线程操作提供了丰富的控制手段,帮助开发者实现高效的并发编程。通过熟练掌握这些方法,可以更好地管理和协调多个执行流程,提高程序的性能和用户体验。在实际开发中,应根据具体需求灵活运用这些...

    java多线程操作简单示例

    ### Java多线程操作简单示例 #### 一、引言 Java作为一种广泛使用的编程语言,其多线程特性为其提供了强大的并发处理能力。通过合理地利用多线程技术,可以显著提高应用程序的性能和响应速度。本文将通过一个简单...

    java多线程处理数据库数据

    本主题将深入探讨如何使用Java的并发包(java.util.concurrent)来实现多线程对数据库数据的批量处理,包括增、删、改等操作。 首先,我们需要了解Java中的线程基础。线程是程序执行的最小单位,一个进程可以包含多...

    JAVA多线程并发操作全局变量

    NULL 博文链接:https://toknowme.iteye.com/blog/2212529

    8-实验八Java多线程操作&#40;实验报告内容&#41;.doc

    8-实验八Java多线程操作&#40;实验报告内容&#41;

    Java多线程编程线程的协同、停止、暂停、继续等操作实现

    总之,理解和熟练运用这些Java多线程操作对于编写高效、稳定的并发程序至关重要。开发者应始终关注线程安全,避免不必要的数据竞争,并确保程序在多线程环境下的正确性和性能。通过实践和学习,可以更好地掌握Java多...

    Java多线程知识点总结

    Java多线程是Java编程语言中一个非常重要的概念,它允许开发者在一个程序中创建多个执行线程并行运行,以提高程序的执行效率和响应速度。在Java中,线程的生命周期包含五个基本状态,分别是新建状态(New)、就绪...

    java多线程的讲解和实战

    Java多线程是Java编程中的重要概念,尤其在如今的多核处理器环境下,理解并熟练掌握多线程技术对于提高程序性能和响应速度至关重要。本资料详细讲解了Java多线程的原理,并提供了丰富的实战代码,非常适合Java初学者...

    java多线程进度条

    本主题将深入探讨如何在Java多线程环境下实现进度条功能。 首先,理解Java多线程的基本概念至关重要。Java通过Thread类和Runnable接口来支持多线程。创建一个新线程通常有两种方式:继承Thread类并重写run()方法,...

    java多线程经典案例

    Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,极大地提升了程序的效率和性能。在Java中,实现多线程有两种主要方式:通过实现Runnable接口或者继承Thread类。本案例将深入探讨Java多线程中的关键...

    java多线程Demo

    Java多线程是Java编程中的一个重要概念,它允许程序同时执行多个任务,提高了程序的效率和响应速度。在Java中,实现多线程有两种主要方式:继承Thread类和实现Runnable接口。 1. 继承Thread类: 当我们创建一个新...

    java多线程分页查询

    ### Java多线程分页查询知识点详解 #### 一、背景与需求分析 在实际的软件开发过程中,尤其是在处理大量数据时,如何高效地进行数据查询成为了一个关键问题。例如,在一个用户众多的社交平台上,当用户需要查看...

    汪文君JAVA多线程编程实战(完整不加密)

    《汪文君JAVA多线程编程实战》是一本专注于Java多线程编程的实战教程,由知名讲师汪文君倾力打造。这本书旨在帮助Java开发者深入理解和熟练掌握多线程编程技术,提升软件开发的效率和质量。在Java平台中,多线程是...

    java多线程查询数据库

    综上所述,"java多线程查询数据库"是一个涉及多线程技术、线程池管理、并发控制、分页查询等多个方面的复杂问题。通过理解和掌握这些知识点,我们可以有效地提高数据库操作的效率和系统的响应速度。

    java 多线程并发实例

    在Java编程中,多线程并发是提升程序执行效率、充分利用多核处理器资源的重要手段。本文将基于"java 多线程并发实例"这个主题,深入探讨Java中的多线程并发概念及其应用。 首先,我们要了解Java中的线程。线程是...

    JAVA单线程多线程

    ### JAVA中的单线程与多线程概念解析 #### 单线程的理解 在Java编程环境中,单线程指的是程序执行过程中只有一个线程在运行。这意味着任何时刻只能执行一个任务,上一个任务完成后才会进行下一个任务。单线程模型...

    java多线程处理大数据

    java多线程处理大数据,可根据配置的线程数,任务去调度处理

    Java多线程编程核心技术_完整版_java_

    Java多线程编程是Java开发中的重要组成部分,它允许程序同时执行多个任务,极大地提高了程序的效率和响应性。在Java中,多线程主要通过继承Thread类或实现Runnable接口来实现。本教程《Java多线程编程核心技术》将...

    java多线程实现大批量数据导入源码

    本项目以"java多线程实现大批量数据导入源码"为题,旨在通过多线程策略将大量数据切分,并进行并行处理,以提高数据处理速度。 首先,我们需要理解Java中的线程机制。Java通过`Thread`类来创建和管理线程。每个线程...

Global site tag (gtag.js) - Google Analytics