`
xwhoyeah
  • 浏览: 91930 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

线程 内部类

    博客分类:
  • Java
阅读更多
一个内部类的用法。

Inc inc = tt.new Inc();
Dec dec = tt.new Dec();

package spooner;

public class ThreadTest1 {
	class Inc implements Runnable {
		public void run() {
			for (int i = 0; i < 100; i++) {
				inc();
			}
		}
	}

	class Dec implements Runnable {
		public void run() {
			for (int i = 0; i < 100; i++) {
				dec();
			}
		}
	}
	
	private int j;

	public static void main(String args[]) {
		ThreadTest1 tt = new ThreadTest1();
		Inc inc = tt.new Inc();
		Dec dec = tt.new Dec();
		for (int i = 0; i < 2; i++) {
			Thread t = new Thread(inc);
			t.start();
			t = new Thread(dec);
			t.start();
		}
	}

	private synchronized void inc() {
		j++;
		System.out.println(Thread.currentThread().getName() + "-inc:" + j);
	}

	private synchronized void dec() {
		j--;
		System.out.println(Thread.currentThread().getName() + "-dec:" + j);
	}
}
分享到:
评论

相关推荐

    java线程内部类练习.rar

    在提供的"java线程内部类练习.rar"压缩包中,可能包含了几个示例,如"12"、"10"和"11",这些文件很可能是Java源代码文件,分别展示了不同的线程内部类使用场景。通过学习和分析这些代码,我们可以更好地理解和掌握...

    使用内部类实现线程

    当我们谈论使用内部类实现线程时,通常指的是非静态内部类(也称为成员内部类),因为它们能直接访问外部类的所有成员,包括私有变量和方法,这对于创建线程并与其关联的数据共享非常方便。 首先,让我们看看如何...

    java中的多线程内部类实现数据共享和Runnable实现数据共享归类.pdf

    本篇文档主要探讨了两种实现Java多线程的数据共享方式:通过内部类和实现Runnable接口。以下是对这两种方法的详细解释: 1. **实现Runnable接口**: - **好处**:Java中的`Runnable`接口允许我们将线程逻辑(run()...

    java中的多线程内部类实现数据共享和Runnable实现数据共享借鉴.pdf

    本篇将探讨两种在Java中实现多线程数据共享的方式:通过内部类和实现`Runnable`接口。 首先,让我们来看看如何使用`Runnable`接口实现数据共享。`Runnable`接口是Java提供的一种创建线程的方式,它允许我们将线程的...

    Java中inner_class内部类

    由于内部类可以直接访问外部类的成员,这使得在多线程环境下管理共享资源变得更加方便。 五、内部类与接口 内部类可以实现一个或多个接口,这在需要一个类同时实现多个功能时非常有用。此外,匿名内部类可以快速...

    易语言类内部多线程

    易语言类内部多线程源码,类内部多线程,call,StartClass,类_取类指针,类_取类成员指针,CreateThread_class,方法1,方法2,方法3,方法4,取类指针,qqq,zzz,CreateThread,CloseHandle,HeapAlloc,HeapFree,GetProcessHeap,...

    创建线程类轻松实现线程管理

    - **中断线程**:通过调用`interrupt()`方法可以请求线程停止执行,但实际停止需要线程内部配合检查`isInterrupted()`或捕获`InterruptedException`。 - **死锁**:当两个或更多线程相互等待对方释放资源而造成的一...

    线程管理工具类

    这可能意味着这个工具类内部维护了一个线程池,`execute()`方法将提交的任务放入线程池,由线程池负责调度和执行。 基于以上信息,我们可以推测`ThreadManager.java`文件可能包含以下内容: 1. `ThreadManager`类...

    易语言类方法的获取以及类线程

    当你在类的方法内部调用`GetThis`时,它会返回调用该方法的对象实例的指针。这在处理类成员方法时非常有用,因为这样可以确保我们能够访问到正确对象的状态。 其次,"启动类线程"和"关闭类线程"是关于线程管理的...

    java中的匿名内部类总结

    匿名内部类广泛应用于多线程编程中,例如Thread类和Runnable接口的实现。匿名内部类也可以用来实现抽象方法和接口。 实例 1: 不使用匿名内部类来实现抽象方法 在这个例子中,我们定义了一个抽象类Person,并且在...

    多线程线程间通信,可用于控制线程内部函数

    多线程线程间通信,可用于控制线程内部函数,做处理......................................................

    C#模仿迅雷的多线程下载类

    C#模仿迅雷的多线程下载类提供了强大的下载功能,通过对代码的深入分析,我们可以理解其内部机制,并在此基础上进行优化和扩展,以满足不同的下载需求。无论是对于个人项目还是企业级应用,掌握多线程下载技术都将...

    浅谈C#跨线程调用窗体控件(比如TextBox)引发的线程安全问题

    浅谈C#跨线程调用窗体控件引发的线程安全问题 C#跨线程调用窗体控件时可能会引发线程安全问题,例如当多个线程操作同一个控件时,该控件可能会进入不一致的状态,出现争用情况和死锁等问题。因此,确保以线程安全...

    MFC多线程的创建,包括工作线程和用户界面线程

    - **区别**:定时器本身不是一个线程,而是通过系统内部线程定时发送消息来实现。多线程则是通过创建独立的执行单元来进行任务的并行处理。 - **联系**:定时器可以结合多线程使用,例如在工作者线程中设置定时器来...

    内部类代码

    3. 封装回调函数:在多线程编程中,内部类常用来封装线程的回调函数,使代码结构清晰。 4. 减少代码重复:如果多个类有共同的行为,可以通过定义一个内部类来共享这些行为。 三、内部类的优缺点 优点: - 提高...

    易语言远程线程注入类模块

    易语言远程线程注入类模块源码,远程线程注入类模块,设置超时时间,私_创建远程线程,打开进程号,取内部句柄,取进程ID,关闭打开句柄,远程申请内存,远程申请内存_文本,远程释放内存,远程执行代码,生成调用代码_数组,执行...

    C++类中创建多线程实现本地和远程打印

    在`print.cpp`中,可能定义了一个类来管理打印任务,包括线程的创建、管理以及打印等级的控制。 5. **queue队列**:队列是常用的数据结构,常用于线程间的通信。例如,`std::queue`可以用来存储待打印的任务,线程...

    java中的内部类

    6. 内部类与多线程:内部类在多线程编程中也发挥了重要作用,因为它可以轻松地实现线程的封装。比如,可以定义一个内部类实现Runnable接口,然后创建Thread对象来启动新线程。 7. 内部类与继承:内部类可以继承任何...

Global site tag (gtag.js) - Google Analytics