Java中多线程使用匿名内部类的方式进行创建3种方式

 1 /*
 2  * 匿名内部类的格式:
 3  */
 4 public class ThreadDemo {
 5     public static void main(String[] args) {
 6         // 继承thread类实现多线程
 7         new Thread() {
 8             public void run() {
 9                 for (int x = 0; x < 100; x++) {
10                     System.out.println(Thread.currentThread().getName() + "--"
11                             + x);
12                 }
13             }
14         }.start();
15         ;
16
17         // 实现runnable借口,创建多线程并启动
18         new Thread(new Runnable() {
19             @Override
20             public void run() {
21                 for (int x = 0; x < 100; x++) {
22                     System.out.println(Thread.currentThread().getName() + "--"
23                             + x);
24                 }
25             }
26         }) {
27         }.start();
28
29         // 更有难度的,在Thread匿名内部类的里面再一次重写run方法
30         //在实际运行时的结果是 hello+x。以thread的run方法为准。但是此处无意义
31         new Thread(new Runnable() {
32             @Override
33             public void run() {
34                 // TODO Auto-generated method stub
35                 for (int x = 0; x < 100; x++) {
36                     System.out.println("java" + "--" + x);
37                 }
38
39             }
40         }) {
41             public void run() {
42                 for (int x = 0; x < 100; x++) {
43                     System.out.println("hello" + "--" + x);
44                 }
45             }
46         }.start();
47     }
48 }
时间: 2024-12-28 07:39:04

Java中多线程使用匿名内部类的方式进行创建3种方式的相关文章

【java多线程】多线程的创建三种方式--笔记

申明:线程的概念以及进程的相关概念,可以参考网络上其他资料,这里只讨论多线程是怎么实现. 一.多线程的简单理解 明白什么是多线程,小生通俗一点的理解为:在一个程序里,我想同时让这个程序完成多个任务. 比如:让主函数 main 在打印1~100之间的所有整数的时候,要求在主函数打印到 20 的时候,再运行另一个类里的程序,让它打印10~100之间的所有整数. 这里忽略同进程内的多线程之间的抢占时间问题,上面的举例需求是要求一个程序只要有发生同时运行俩个程序的情况就行,即不准出现无论程序跑多少次都是

java中多线程模拟(多生产,多消费,Lock实现同步锁,替代synchronized同步代码块)

import java.util.concurrent.locks.*; class DuckMsg{ int size;//烤鸭的大小 String id;//烤鸭的厂家和标号 DuckMsg(){ } DuckMsg(int size, String id){ this.size=size; this.id=id; } public String toString(){ return id + " 大小为:" + size; } } class Duck{ private int

Java中多线程技术

***********************************************声明****************************************************** 原创作品,出自 "晓风残月xj" 博客,欢迎转载,转载时请务必注明出处(http://blog.csdn.net/xiaofengcanyuexj). 由于各种原因,可能存在诸多不足,欢迎斧正! *******************************************

java中多线程的实例代码

今天开始学习java中的多线程,在看书的过程中写了一个实例来练习多线程的用法,下面把代码放到博文里,里面很多的注释,可以帮助理解.     运行结果如下: main:启动MessageLoop线程...main:等待MessageLoop线程结束...main:继续等待.main:继续等待.main:继续等待.main:继续等待.Thread-0:消息1main:继续等待.main:继续等待.main:继续等待.main:继续等待.Thread-0:消息2main:继续等待.main:继续等待.

Java 中多线程

很多核心Java面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework),理解核心线程概念时,娴熟的实际经验是必需的.这篇文章收集了 Java 线程方面一些典型的问题,这些问题经常被高级工程师所问到. 0.Java 中多线程同步是什么? 在多线程程序下,同步能控制对共享资源的访问.如果没有同步,当一个 Java 线程在修改一个共享变量时,另外一个线程正在使用或者更新同一个变量,这样容易导致程序出现错误的结果. 1.解释实现多线程的几种方法? 一

java中多线程通信实例:生产者消费者模式

线程间的通信: 其实就是多个线程再操作同一个资源,但是操作的动作不同   当某个线程进入synchronized块后,共享数据的状态不一定满足该线程的需要,需要其他线程改变共享数据的状态后才能运行,而由于当时线程对共享资源时独占的,它必须解除对共享资源的锁定的状态,通知其他线程可以使用该共享资源. Java中的 wait(),notify(),notifyAll()可以实现线程间的通信. 生产者--消费者问题是典型的线程同步和通信问题 /** * 生产者和消费者问题,生产者生成出产品,消费者去购

java中多线程执行时,为何调用的是start()方法而不是run()方法

Thead类中start()方法和run()方法的区别 1,start()用来启动一个线程,当调用start()方法时,系统才会开启一个线程,通过Thead类中start()方法来启动的线程处于就绪状态(可运行状态),此时并没有运行,一旦得到CPU时间片,就自动开始执行run()方法.此时不需要等待run()方法执行完也可以继续执行下面的代码,所以也由此看出run()方法并没有实现多线程. 2,run()方法是在本线程里的,只是线程里的一个函数,而不是多线程的.如果直接调用run(),其实就相当

UserView--第二种方式(避免第一种方式Set饱和),基于Spark算子的java代码实现

UserView--第二种方式(避免第一种方式Set饱和),基于Spark算子的java代码实现 测试数据 java代码 1 package com.hzf.spark.study; 2 3 import java.util.Map; 4 import java.util.Set; 5 6 import org.apache.spark.SparkConf; 7 import org.apache.spark.api.java.JavaPairRDD; 8 import org.apache.s

js中 json对象与json字符串相互转换的几种方式

以下总结js中 json对象与json字符串相互转换的几种方式: 一.JSON对象转化为JSON字符串 1.使用JSON.stringify()方法进行转换 该方法不支持较老版本的IE浏览器,比如:ie8(兼容模式).ie7.ie6. var jsonStr = JSON.stringify(jsonObj); alert(jsonStr); var jsonStr = jsonObj.toJSONString(); alert(jsonStr); 二.JSON字符串转化为JSON对象 1.使用