- 浏览: 248984 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (159)
- java (38)
- extjs (6)
- jquery (3)
- struts2 (0)
- hibernate (3)
- spring (1)
- flex (1)
- css (2)
- js (3)
- html (4)
- android (4)
- linux (9)
- swing (0)
- java E-mail (0)
- 心情故事 (11)
- mysql (4)
- jbpm (7)
- 我的搜索之路 (2)
- MyBatis (3)
- 玩转svn (3)
- 生活无处不美 (0)
- 工具 (4)
- 数据统计与分析 (1)
- quartz (1)
- webservices (2)
- jboss (1)
- php (1)
- hadoop (3)
- maven (5)
- Discuz! (1)
- windows (1)
- 站长之家 (1)
- OSGi (1)
- 软件测试 (2)
- redis (4)
- git (5)
- MongoDB (4)
- lucene (3)
- freemarker (5)
- html5 (4)
- itext (1)
- nginx (1)
最新评论
-
kiansoung:
在Slave机器需不需开SecondaryNameNode程序 ...
快速了解Hadoop架构 -
忧郁的小老虎:
openjdk和jdk的区别与联系 -
TheMatrix:
...
MyBatis入门实例 -
lishl:
非常感谢分享。详细,务实。赞一个。
Lucene学习笔记【2013-04-10更新】 -
派尔人事:
关于JPA一对一关系的删除问题,有请大家帮忙,感激不尽
第一种方式:在Thread子类覆盖的run方法中编写运行代码
第二种方式:在传递给Thread对象的Runnable对象的run方法中编写代码
总结:查看Thread类的run()方法的源代码,可以看到其实这两种方式都是在调用Thread对象的run方法,如果Thread类的run方法没有被覆盖,并且为该Thread对象设置了一个Runnable对象,该run方法会调用Runnable对象的run方法。
问题:如果在Thread子类覆盖的run方法中编写了运行代码,也为Thread子类对象传递了一个Runnable对象,那么,线程运行时的执行代码是子类的run方法的代码?还是Runnable对象的run方法的代码?
输出结果是:run method of thread!
更多资源,请访问:bbs.naxsu.com
Thread thread1 = new Thread() { @Override public void run() { while (true) { try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()); System.out.println(this.getName()); } } }; thread1.start();
第二种方式:在传递给Thread对象的Runnable对象的run方法中编写代码
Thread thread2 = new Thread(new Runnable() { @Override public void run() { while (true) { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()); } } }); thread2.start();
总结:查看Thread类的run()方法的源代码,可以看到其实这两种方式都是在调用Thread对象的run方法,如果Thread类的run方法没有被覆盖,并且为该Thread对象设置了一个Runnable对象,该run方法会调用Runnable对象的run方法。
问题:如果在Thread子类覆盖的run方法中编写了运行代码,也为Thread子类对象传递了一个Runnable对象,那么,线程运行时的执行代码是子类的run方法的代码?还是Runnable对象的run方法的代码?
new Thread(new Runnable() { public void run() { System.out.println("run method of runnable!"); } }) { public void run() { System.out.println("run method of thread!"); } }.start();
输出结果是:run method of thread!
更多资源,请访问:bbs.naxsu.com
发表评论
-
JAVA在线视频教程之基础教程(更新完)
2013-06-03 22:54 39JAVA基础教程(更新完) 孔浩老师JAVA基 ... -
使用jcrop+springmvc实现头像上传与裁剪
2013-05-24 09:15 36使用jcrop+springmvc实现头像上传与裁剪功能 ... -
根据文章内容获取摘要的解决方案
2013-03-26 22:23 1167如果有一篇文章,根据文章内容提取出一个简短的摘要,有哪些实现方 ... -
Spring与工厂模式
2013-03-26 16:37 19711. 前言 我相信很多在刚刚使用Sprin ... -
登录成功后不刷新页面,在页面怎样获取登录用户的信息
2013-03-11 22:50 1672用ajax登录,登录成功后不刷新页面,在页面怎样获取 ... -
面试老碰壁,是不是由于基础不够牢固
2013-03-08 14:05 1844最近面试老碰壁,虽然有一定的开发经验,但问的问题虽然比较基础 ... -
这样的面试题,你能回答几个
2013-02-28 10:52 13661 ,了解hbase么,为什么存储速度快? 2理解sprin ... -
获取文章中的图片
2013-01-30 09:48 1136瀑布流的功能开发完了,感觉还不错,地址是:http:/ ... -
java cms 在线安装原理及详细步骤
2013-01-26 13:16 1130java cms 在线安装原理及详细步骤,详细代码请 ... -
java反射详解(一)_Class类
2012-11-17 09:24 690Class类 Java类用于描述一类事物的共性, ... -
领悟书生写论坛之类图设计
2012-09-20 00:37 1046大家好,今晚设计了BBS的类图,和大家分享一下。其实也比较简单 ... -
获取web根目录下的文件与类路径下的文件的方法
2012-08-06 21:41 11311.获取web项目根目录下的文件 读取web项目根目录下的某 ... -
JasperReports结合iReport制作报表-使用JasperReports生成报表
2012-06-11 22:54 1701《JasperReports结合iReport制作报表-使用i ... -
JasperReports结合iReport制作报表-使用iReport设计报表
2012-06-11 13:56 2523下载 iReport iReport ... -
学习笔记系统文章(提供PDF下载,2012-06-08 23:27更新)
2012-06-08 13:23 20992012-06-11 JasperReports结合i ... -
Java日期操作总汇
2012-06-06 08:35 830字符串转为Date对象 public sta ... -
ubuntu学习笔记2
2012-06-01 22:37 1126安装jdk <!--[if !support ... -
尚学堂科技_张志宇_SERVLET_JSP_视频教程下载地址(每集分开下载)
2012-05-27 23:49 1071由于师弟在学校的流量有限,下载也不方便,他委托我帮 ... -
移动用户资费统计系统学习笔记续一(下载附件更易阅读)
2012-05-26 23:04 791接着上一节的需求,我们再来整理一下费用明细,因为我看了好几次才 ... -
移动用户资费统计系统学习笔记
2012-05-26 08:46 814前天学习了移动用户资 ...
相关推荐
张孝祥的Java多线程与并发库高级应用笔记涵盖了从传统线程技术到JDK1.5并发库的全面内容,不仅加深了对线程基本原理的认识,还介绍了现代Java并发编程的最佳实践。对于希望提升多线程编程技能的Java开发者来说,这是...
张孝祥Java多线程与并发库高级应用学习笔记,很经典的学习多线程和并发的资料。张孝祥Java多线程讲义笔记由张孝祥亲自整理,很实用的。
这篇学习笔记将深入探讨Java多线程的核心概念、实现方式以及相关工具的使用。 一、多线程基础 1. 线程与进程:在操作系统中,进程是资源分配的基本单位,而线程是程序执行的基本单位。每个进程至少有一个主线程,...
Java并发编程学习笔记,研究JAVA并发多线程编程的一本教程,使用并发技术可以开发出并行算法,充分利用多处理器的计算能力,避免硬件资源浪费。目前,在JAVA并发编程方面的论述系统且内容详实的技术资料不太多,Java...
多线程学习笔记 iOS开发中,多线程是一种常见的技术手段,用于优化应用程序的性能,提升用户体验。多线程的核心是让程序能够并发地执行多个任务,合理地利用设备的计算能力,尤其是在拥有多个核心的处理器上。 ...
在本学习笔记中,我们将探讨如何使用Java的Socket编程实现多线程服务器,特别是通过ExecutorService创建线程池来处理客户端的并发请求。ExecutorService是一个高级的线程管理工具,它允许我们更有效地管理和控制线程...
这本"Java并发编程学习笔记"可能是作者在深入研究Java并发特性、工具和最佳实践过程中积累的心得体会。下面,我们将根据这个主题,探讨一些关键的Java并发编程知识点。 1. **线程与进程**:在多任务环境中,线程是...
死锁是指两个或更多线程相互等待对方释放资源而无法继续执行的情况,应避免创建这样的循环等待。线程之间的数据传递可以通过共享变量、线程间通信(如`wait()`和`notify()`)或使用`Future`和`Callable`接口来实现。...
Java并发编程是Java开发中必不可少的一部分,涉及到多线程、同步机制、线程池以及并发工具类等多个核心知识点。以下是对这些主题的详细说明: 1. **线程安全与锁 Synchronized 底层实现原理**: 线程安全是指在多...
读书笔记:参考Java高并发编程详解多线程与架构设计汪文君学习笔记及源码
Java并发库是Java平台中的核心组件,它为多线程编程提供了丰富的工具和接口,使得开发者能够高效、安全地实现并发程序。在Java并发库中,ExecutorService接口和相关的线程池是其核心部分,它们提供了线程管理和任务...
- 创建线程有两种主要方式:继承`Thread`类并重写`run()`方法,或实现`Runnable`接口并提供`run()`方法,然后通过`Thread`构造函数创建线程对象。 - `start()`方法用于启动线程,`run()`方法包含线程执行的主要...
### Java分布式应用学习笔记05多线程下的并发同步器 #### 1. 前言 在现代软件开发中,特别是在分布式系统和高性能计算领域,有效地管理多线程之间的协同工作至关重要。Java语言提供了丰富的工具和API来帮助开发者...
### Java并发编程学习笔记知识点详解 #### 一、Java并发编程概述 Java并发编程是指在Java应用程序中同时执行多个操作的技术。它通过多线程、线程池等机制实现资源的有效利用,提高程序运行效率。Java并发编程的...
### Java多线程学习笔记 #### 一、线程的基本概念 在计算机科学中,**线程**(Thread)是程序执行流的最小单位。一个标准的程序只能做一件事情,而通过多线程技术,可以让程序同时处理多个任务。在Java中,线程是...
### Java并发编程实践笔记知识点详解 #### 一、保证线程安全的方法 ...以上是Java并发编程实践笔记中总结的关键知识点,涵盖了从基本概念到高级技术的应用,旨在帮助开发者构建高效、可靠的多线程应用。
在Java分布式应用开发中,多线程环境下的并发同步是至关重要的一个环节。并发同步器在多线程编程中起到协调各个线程访问共享资源,确保数据一致性与程序正确性的关键作用。本篇笔记将深入探讨Java中的并发同步机制,...
Java并发编程是Java开发中的重要领域,它涉及到多线程、同步、锁机制、线程池等关键概念,是提高程序性能和效率的关键技术。在Java中,并发编程的运用可以充分利用多核处理器的能力,实现高效的多任务处理。以下是对...