- 浏览: 77407 次
- 性别:
- 来自: 深圳
文章分类
最新评论
class MyThread implements Runnable{ int i = 100; public void run(){ while(true){ synchronized(this){ //Thread.currentThread()获取当前代码在哪个线程中运行,会返回线程对象(Thread对象) System.out.println(Thread.currentThread().getName() + i); i--; //让线程让出CPU,使所有线程重新竞争CPU Thread.yield(); if(i<0) break; } } } }
class Test{ public static void main(String[] args){ MyThread mythread = new MyThread(); //生成两个Thread对象,但是这两个Thread对象共用同一个线程体 Thread t1 = new Thread(mythread); Thread t2 = new Thread(mythread); //每一个名字都有名字,可以通过Thread对象的setName()方法设置线程名字 t1.setName("线程a"); t2.setName("线程b"); //分别启动两个线程 t1.start(); t2.start(); } }
——————————————————————————————
synchronized用法同步锁(锁代码块)
class Service{ public void fun1(){ synchronized(this){ try{ Thread.sleep(3 * 1000); } catch(Exception e){ System.out.println(e); } System.out.println("fun1"); } } public void fun2(){ synchronized(this){ System.out.println("fun2"); } } }
class MyThread1 implements Runnable{ private Service service; public MyThread1(Service service){ this.service = service; } public void run(){ service.fun1(); } }
class MyThread1 implements Runnable{ private Service service; public MyThread1(Service service){ this.service = service; } public void run(){ service.fun2(); } }
class Test{ public static void main(String[] args){ Service service = new Service(); Thread t1 = new Thread(new MyThread1(service)); Thread t2 = new Thread(new MyThread2(service)); t1.start(); t2.start(); } }
——————————————————
synchronized用法同步锁(锁方法)
发表评论
-
151多线程(优先级&yield方法)
2015-10-28 11:16 694/* 养成习惯:数据共享用静态 */ class Dem ... -
150_多线程(Join方法)
2015-10-27 18:31 610/* join: 当A线程执行到了B线程的join方法 ... -
114_面向对象(多异常处理)_黑马程序员_Java基础视频
2015-10-25 23:27 695/* 对多异常的处理 1.生命异常时,建议声明更为具体的异 ... -
113_面向对象(异常声明throws)_黑马程序员_Java基础视频
2015-10-25 23:26 481/* 异常:就是程序在运行时出现不正常情况 异常由来:问题 ... -
112_面向对象(异常try-catch)
2015-10-25 23:25 733/* 异常:就是程序在运行时出现不正常情况 异常由来:问题 ... -
148_多线程(停止线程)
2015-10-25 23:16 581/* stop方法已经过时。 如何停止线程? 只有一 ... -
147_多线程(线程间通信-生产者消费者JDK5.0升级版)
2015-10-21 23:33 751/*JDK1.5及以上提供了多线程升级解决方案。 将同步Sy ... -
146_多线程(线程间通信-生产者消费者)
2015-10-20 23:35 627一个生产者一个消费者 ... -
144_多线程(线程间通信-等待唤醒机制)
2015-10-20 18:35 721class Res{ String name; Str ... -
142_多线程-线程间通信
2015-10-20 16:18 703/* 线程间通讯: 其实就是多线程在操作同一个资源。 但 ... -
141多线程-死锁
2015-10-20 14:45 694/* 死锁: 同步中嵌套同步 */ class T ... -
140_多线程(多线程-单例设计模式-懒汉式)
2015-10-19 11:45 689/* 单例设计模式 饿汉式 class Single ... -
138_多线程(多线程-同步函数的锁是this)
2015-10-15 14:48 847/* 同步函数用的是哪一个锁呢? 函数需要被对象调用。那么 ... -
137_多线程(多线程-同步函数)
2015-10-13 23:25 599/* 需求:银行有一个金库。 有两个储户分别存300元 ... -
135_多线程(多线程的安全问题)
2015-10-13 18:07 609class TWindow implements Runnab ... -
多线程(创建线程-实现Runnable接口)
2015-10-10 00:19 554class TWindow implements Runnab ... -
133_多线程(售票的例子)
2015-10-09 23:48 645/* 需求:简单的买票程序 多个窗口卖票 */ c ... -
132_多线程(获取线程对象以及名称)
2015-10-09 23:30 1216/* 练习:创建两个线程,和主线程交替运行 线程都有自 ... -
多线程-继承Thread类
2015-10-09 00:26 1560/* 进程:是一个正在执行中的程序 每一个进程执行都有一个 ... -
包的应用
2015-10-08 23:28 1665package pack; class PackageD ...
相关推荐
### 多线程初学小练习 #### 背景介绍 在计算机科学领域中,多线程技术是实现程序并行处理的关键方法之一。它允许一个程序中的多个任务同时执行,极大地提高了程序的效率与响应速度。对于初学者而言,理解和掌握多...
Java 线程初学者资料 Java 中的线程是一个复杂的主题,对初学者来说可能有些难以掌握。然而,理解 Java 线程是非常重要的,因为它可以帮助我们编写高效的程序。 Java 中的线程有两种实现方法,一种是实现 Runnable ...
Java多线程初学者指南是一份详尽的教育资源,涵盖了多线程编程的基本概念和实践技巧,适合初学者深入理解这一重要技术。本指南通过12篇文档,逐步引导学习者掌握Java多线程的核心知识。 首先,让我们从基础开始,...
### Java线程初学者知识点详解 #### 一、线程基础概念 在计算机科学中,线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。对于Java初学者而言,理解线程的基础概念至关...
Java 多线程初学者指南之向线程传递数据的三种方法 在多线程编程中,向线程传递数据是一项非常重要的任务。与传统的同步开发模式不同,在多线程异步开发模式下,数据的传递和返回方式有很大的区别。因此,本文将...
### Java多线程初学者教程知识点详解 #### 一、多线程概念解析 - **定义与特性**:多线程是一种程序结构设计方式,它允许多个指令流在同一程序中并发执行。每个指令流被称作一个线程,它们在逻辑上可以“同时”执行...
在Java编程中,多线程是一项重要的特性,它允许程序同时执行多个任务,提升效率。本文将深入探讨Java多线程中的线程生命周期,以及如何控制线程的状态转换。 线程的生命周期通常包括五个基本状态:新建(New)、...
在Windows编程领域,MFC(Microsoft Foundation Classes)是一个强大的C++库,用于构建基于Windows的应用程序。本主题将深入探讨MFC中用户...对于线程初学者来说,理解这种分离和协作模式是提升编程技能的重要一步。
java多线程初学者练习题目,供初学者练习使用
想学多线程,对多线程不了解的同学可以看看,不错的学习文档吗,适合多线程初学者
这篇初学者指南的第五部分主要聚焦于如何在不同的用户界面(UI)技术中有效地利用线程。对于任何开发人员来说,理解线程处理尤其是在UI应用程序中至关重要,因为它可以提高程序的响应性和性能。 首先,我们来了解...
通过这个多线程图像处理项目,初学者可以学习到如何在实际工程中结合Halcon的强大功能和C#的易用性,实现高效、并发的图像处理任务。随着经验的增长,你还可以探索更复杂的并发模型,如ThreadPool或Task并行库(TPL)...
这篇初学者指南的第三部分将深入探讨如何在C#中有效地管理和同步线程。 1. **线程同步基础** - **Monitor对象**:C#提供了`System.Threading.Monitor`类,用于实现基于监视器的线程同步。`Monitor.Enter`和`...
本文将探讨C++多线程编程的基础,通过一个简单的实例帮助初学者理解其核心概念。 首先,我们要知道在C++11及其后续版本中,标准库提供了一个名为`<thread>`的头文件,它包含了创建和管理线程的接口。创建新线程的...
这篇初学者指南主要针对那些想要深入理解.NET线程机制的人,无论你是C# 2.0、3.0、3.5还是.NET 2.0、3.0或4.x版本的开发者,本指南都将为你提供必要的基础知识。 首先,我们要理解什么是线程。线程是程序执行的独立...
对于初学者来说,理解和掌握QT中的多线程操作至关重要。 在QT中,多线程主要用于将耗时的操作(如大数据处理、网络通信、数据库操作等)与用户界面的更新分离开来,以避免阻塞UI,提高用户体验。QT提供了QThread类...