`
blueskylan
  • 浏览: 97999 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

使用内部类实现线程

阅读更多

/**
* 设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。
* 以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。
*/
public class ThreadTest {

private int j;

public static void main(String args[]) {
ThreadTest tt = new ThreadTest();
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);
}

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();
}
}
}
}



分享到:
评论

相关推荐

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

    Java提供了`synchronized`关键字和`Lock`接口(如`ReentrantLock`)来实现线程同步。 - **线程优先级**:Java中的线程有10个优先级,从`MIN_PRIORITY`(1)到`MAX_PRIORITY`(10),默认优先级是`NORM_PRIORITY`(5)。但...

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

    在Java编程语言中,多...总结起来,Java中的多线程可以通过实现Runnable接口或使用内部类来实现。这两种方式都可以实现数据共享,但需要谨慎处理并发问题以确保数据一致性。合理地使用同步机制是保证线程安全的关键。

    java线程内部类练习.rar

    在Java线程中,内部类经常被用来实现线程的创建和管理,因为它们可以轻松地访问外部类的成员,包括私有成员。现在,我们将深入探讨这两个主题以及它们在实际编程中的应用。 首先,让我们了解Java中的线程。Java提供...

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

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

    华为java面试题华为面试题绝对精辟

    可以使用内部类实现线程,并使用 synchronized 关键字来确保线程安全。 JSP 9. JSP 的内置对象及方法。包括 request、response、out、pageContext 等对象,每个对象都提供了一些有用的方法来获取或设置相关数据。 ...

    java中的匿名内部类总结

    在这个例子中,我们使用匿名内部类来实现Thread类的run()方法。匿名内部类可以简洁的实现多线程编程。 实例 5: Runnable 接口的匿名内部类实现 在这个例子中,我们使用匿名内部类来实现Runnable接口的run()方法。...

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

    "其他_附加文本"可能指的是在类方法或类线程中使用的辅助文本数据,如日志记录、状态信息或调试信息。这些文本可以帮助开发者追踪程序的运行过程,理解其行为,尤其是在处理复杂逻辑或排查问题时。 "取_类_函数地址...

    Java4Android 35_内部类和匿名内部类

    4. **线程**: Runnable和Thread类的匿名内部类实现,常用于创建和运行新的线程。 **注意事项** - 内部类的对象只能在外部类的对象存在的情况下创建。 - 静态内部类可以独立于外部类对象存在,但非静态内部类不能。...

    C++ 使用CEvent类创建线程编程

    线程函数内部可以使用CEvent类来控制线程的执行流程,例如: ```cpp UINT ThreadFunction(LPVOID pParam) { CEvent* pEvent = (CEvent*)pParam; // 传入的事件对象指针 // 等待事件变为已签发 pEvent-&gt;...

    java代码笔记2010-06-01:Java内部类 静态内部类 局部内部类 明明内部类;StringBuffer reverse的使用;

    当只需要一次性使用一个类,并且这个类只需要实现一两个方法时,匿名内部类是一个很好的选择。它可以用于事件监听、回调函数等场景。 5. **StringBuffer reverse的使用**: `StringBuffer` 是线程安全的字符串操作...

    GUI中用线程实现倒计时

    - 实现了两个`ActionListener`接口的匿名内部类,分别为“开始”和“停止”按钮定义了事件处理器。 - “开始”按钮的事件处理器根据用户输入的时间值启动倒计时线程。 - “停止”按钮的事件处理器调用了线程的`...

    JAVA多线程类QQ简单实现

    在本项目中,“JAVA多线程类QQ简单实现”是一个基于客户端-服务器架构的QQ聊天应用的简化版本,它利用了JAVA编程语言的核心特性——多线程,来处理并发的网络通信。王刚老师的“疯狂JAVA”系列教程是这个项目的灵感...

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

    在C++编程中,创建多线程是一种常见的方式,用于实现并发执行多个任务,比如这里的本地和远程打印。本示例中的代码可能涉及到以下几个关键知识点: 1. **多线程**:C++11及更高版本引入了`std::thread`库来支持线程...

    线程管理工具类

    "线程管理工具类"如题目所示,是一种设计用于简化线程操作的类,它可能包含了实现特定策略来优化线程使用的方法。 标题中的“线程管理工具类”通常会提供一些静态方法,以便开发者能够快速地执行线程操作,而无需...

    华为java面试题(word文档)

    - 示例代码展示了如何使用内部类实现线程,但没有处理线程同步问题。在多线程环境下,对共享变量j的增减操作需要同步,以防止竞态条件。代码中的inc()和dec()方法使用了`synchronized`关键字,确保同一时间只有一个...

    CESock类 多线程实现简单易用的套接字

    多线程方式实现简单易用的套接字,使用TCP协议 阻塞方式. 最大发送数据字节数不宜超过1KB. 同时实现了客户端及服务器端功能,可接收及发送数据. 版本: v1.0.0 第一版本发布时间: 20100823 第一作者: Jef ...

    C++实现线程安全队列

    在C++中,我们可以使用互斥量(Mutex)来实现线程安全的数据结构,如队列。本主题将详细介绍如何在C++中使用互斥量实现线程安全的队列,并通过测试代码验证其正确性。 首先,我们需要了解线程安全队列的基本设计。...

    Java多线程技术 线程的死锁,详细阐述了多线程的两种实现方法: 由Thread类派生子类;实现Runnable接口

    本文将详细介绍Java多线程的基本概念、线程的生命期、线程的状态转换、线程调度原则以及如何实现线程的两种常见方式。 #### 二、线程的相关概念 **1. 进程与线程的区别** - **进程**:是一个正在执行的程序实例,...

    线程内使用SetTimer实现定时器

    本篇将详细讲解如何在线程内部使用`SetTimer`来实现定时器,以及`MyThreadTimer`的实现方式。 首先,理解`SetTimer`函数的基本用法。`SetTimer`的原型如下: ```cpp UINT_PTR SetTimer( _In_opt_ HWND hWnd, _In...

Global site tag (gtag.js) - Google Analytics