`

synchronized 在多线程中的一些 理论

阅读更多
package com.mhm.test;

public class Test8 extends Thread {
	public String methodName;

	public static void method(String s) {
		System.out.println(s);
		while (true)
			;
	}

	public synchronized void method1() {
		method("非静态的method1方法");
	}

	public synchronized void method2() {
		method("非静态的method2方法");
	}

	public static synchronized void method3() {
		method("静态的method3方法");
	}

	public static synchronized void method4() {
		method("静态的method4方法");
	}

	public void run() {
		try {
			getClass().getMethod(methodName).invoke(this);
		} catch (Exception e) {
		}
	}

	public static void main(String[] args) throws Exception {
		Test8 myThread1 = new Test8();
		for (int i = 1; i <= 4; i++) {
			myThread1.methodName = "method" + String.valueOf(i);
			new Thread(myThread1).start();
			sleep(100);
		}
	}
}
 

 

 

输出

非静态的method1方法
静态的method3方法

 

得出结果:

method2和method4在method1和method3未结束之前不能运行。因此,我们可以得出一个结论,如果在类中使用 synchronized关键字来定义非静态方法,那将影响这个中的所有使用synchronized关键字定义的非静态方法。如果定义的是静态方法,那 么将影响类中所有使用synchronized关键字定义的静态方法

分享到:
评论

相关推荐

    Android开发中的多线程编程技术

    在Android应用开发中,多线程技术是必不可少的,它能帮助开发者实现高效的代码执行,提升用户体验,并确保应用程序的响应性。本资源包主要聚焦于Android平台上的多线程编程,包括理论概念、最佳实践以及实际应用案例...

    JAVAJAVA多线程教学演示系统论文

    1. **多线程基础**:论文可能会首先介绍多线程的基本概念,解释为什么在JAVA中需要使用多线程,以及多线程如何提升程序的执行效率。这部分内容可能会涉及到线程的创建、启动、同步和通信等基础知识。 2. **JAVA多...

    Java多线程编程实战指南-核心篇

    《Java多线程编程实战指南-核心篇》是一本深入探讨Java并发编程的书籍,旨在帮助读者掌握在Java环境中创建、管理和同步线程的核心技术。Java的多线程能力是其强大之处,使得开发者能够在同一时间执行多个任务,提高...

    多线程应用实例

    在计算机编程领域,多线程是一项关键的技术,尤其在当今的高性能计算和实时系统中扮演着重要角色。本文将深入探讨“多线程应用实例”这一主题,旨在帮助读者理解和掌握多线程的相关知识点。 首先,我们要理解什么是...

    多线程实战应用

    本文将深入探讨“多线程实战应用”这一主题,结合提供的标签“源码”和“工具”,我们将从理论基础到实践案例,全面解析多线程的核心概念及其在实际开发中的应用。 首先,我们需要理解什么是线程。线程是操作系统...

    pb多线程实现的例程

    本例程“pb多线程实现”旨在展示如何在编程中利用多线程来实现并发操作。解压密码为"hur.cn",这可能是一个私有的或加密的压缩包,但在这里我们将专注于理解多线程的核心概念。 1. **多线程定义**: - 多线程是指...

    多线程的实验

    在单核处理器中,多线程通过时间片轮转的方式实现并发执行,而在多核处理器上,线程可以真正地并行运行。线程共享同一进程的内存空间,因此它们可以访问相同的变量,但也可能导致竞态条件和死锁等问题。 在Java或...

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

    在Java平台中,多线程是并发处理的基础,对于构建高效、可扩展的系统至关重要。 Java多线程允许程序同时执行多个独立的代码段,这在处理大数据、网络通信、用户界面更新等场景中尤其有用。书中详细介绍了Java多线程...

    多线程

    通过深入学习相关理论,熟悉并熟练运用各种同步机制和并发工具,我们可以在复杂的多线程环境中编写出高效、可靠的代码。无论是从提高程序性能,还是优化资源利用,多线程都是一个不可或缺的利器。

    多线程,day2,B站狂神,代码Lesson.rar

    在Java编程语言中,多线程是程序设计中的一个重要概念,尤其在开发高效能和响应迅速的应用时。"多线程,day2,B站狂神,代码Lesson.rar"这个资源可能是一个关于Java多线程的第二日课程,由B站(哔哩哔哩)上的一位...

    多线程的学习资料(对初学者特别有用)!

    在IT领域,多线程是程序设计中的一个重要概念,尤其对于服务器端开发和高并发应用来说,理解并熟练掌握多线程技术至关重要。本资源包针对初学者提供了全面的多线程学习资料,旨在帮助你快速入门并解决实际开发中的...

    7.多线程__阶乘_java_阶乘运算_西南科技大学_多线程_

    1. **理论基础**:介绍阶乘的基本概念,以及多线程在并发计算中的作用。 2. **线程创建**:讲解如何在Java中创建线程,包括`Thread`类和`Runnable`接口的使用方法。 3. **任务分解**:解释如何将阶乘运算任务拆分成...

    多线程实验报告.docx

    在本实验中,我们主要探讨的是Java编程中的多线程技术及其在实际应用中的实现。实验的目的是通过创建一个多线程程序,让学生理解和掌握Java中线程的生命周期及线程间的协作。实验内容分为两大部分:计算线程和读取...

    java基础多线程练习题(1)

    在Java编程语言中,多线程是核心特性之一,它使得程序可以同时执行多个不同的任务,从而提高了系统资源的利用率和程序的...在解决这些练习题的过程中,记得结合理论知识和实践操作,不断巩固和提高你的Java多线程技能。

    java多线程进阶

    8. **实战案例**:书中应该会包含一些实际的多线程编程案例,帮助读者将理论知识应用于实践,提升解决实际问题的能力。 9. **并发编程最佳实践**:书中可能还会提供一些并发编程的最佳实践,包括如何编写线程安全的...

    多线程示例程序.rar

    在编程领域,多线程是实现并发执行任务的关键技术,尤其在现代计算机系统中,它被广泛应用以提高程序性能和响应速度。标题“多线程示例程序.rar”表明这是一份关于多线程编程的实例教程,适用于初学者学习。通过这份...

    java多线程学习

    对于初学者而言,要通过理论学习与代码实践相结合的方式,逐步掌握多线程编程的核心概念和实际操作技巧,从而在实际应用中灵活运用。在学习的过程中,还可以参考多种教学资源,比如课本、在线教程、开源项目代码等,...

    java多线程并发实战和源码

    Java多线程并发实战与源码分析是Java开发中至关重要的一部分,它涉及到程序性能优化、系统资源高效利用以及复杂...在实践中,不断尝试和调试多线程代码,将理论知识与实践经验相结合,才能真正掌握Java并发编程的精髓。

    多线程案例,多线程教程

    本文将深入探讨多线程的概念、重要性以及如何在实际项目中应用多线程,特别关注Java语言中的多线程实现。 多线程的基本概念: 1. 线程是操作系统调度的基本单位,一个进程中可以有多个线程并行执行。相比于单线程,...

Global site tag (gtag.js) - Google Analytics