随笔分类 -  emanual_java进阶_java多线程

摘要:volatile关键字相信了解Java多线程的读者都很清楚它的作用。volatile关键字用于声明简单类型变量,如int、float、boolean等数据类型。如果这些简单数据类型声明为volatile,对它们的操作就会变成原子级别的。但这有一定的限制。例如,下面的例子中的n就不是原子级别的: 如果 阅读全文
posted @ 2018-10-04 01:01 尐鱼儿 阅读(305) 评论(0) 推荐(0) 编辑
摘要:在传统的同步开发模式下,当我们调用一个函数时,通过这个函数的参数将数据传入,并通过这个函数的返回值来返回最终的计算结果。 但在多线程的异步开发模式下,数据的传递和返回和同步开发模式有很大的区别。由于线程的运行和结束是不可预料的,因此,在传递和返回数据时就无法象函数一样通过函数参数和return语句来 阅读全文
posted @ 2018-10-04 01:01 尐鱼儿 阅读(525) 评论(0) 推荐(0) 编辑
摘要:从线程中返回数据和向线程传递数据类似。也可以通过类成员以及回调函数来返回数据。但类成员在返回数据和传递数据时有一些区别,下面让我们来看看它们区别在哪。 一、通过类变量和方法返回数据 使用这种方法返回数据需要在调用start方法后才能通过类变量或方法得到数据。让我们先来看看例程2-13会得到什么结果。 阅读全文
posted @ 2018-10-04 01:00 尐鱼儿 阅读(256) 评论(0) 推荐(0) 编辑
摘要:synchronized关键字有两种用法。第一种就是在《使用Synchronized关键字同步类方法》一文中所介绍的直接用在方法的定义中。另外一种就是synchronized块。我们不仅可以通过synchronized块来同步一个对象变量。也可以使用synchronized块来同步类中的静态方法和非 阅读全文
posted @ 2018-10-04 00:59 尐鱼儿 阅读(633) 评论(0) 推荐(0) 编辑
摘要:要想解决“脏数据”的问题,最简单的方法就是使用synchronized关键字来使run方法同步,代码如下: 从上面的代码可以看出,只要在void和public之间加上synchronized关键字,就可以使run方法同步,也就是说,对于同一个Java类的对象实例,run方法同时只能被一个线程调用,并 阅读全文
posted @ 2018-10-04 00:58 尐鱼儿 阅读(1083) 评论(0) 推荐(0) 编辑
摘要:我们可以通过synchronized块来同步特定的静态或非静态方法。要想实现这种需求必须为这些特定的方法定义一个类变量,然后将这些方法的代码用synchronized块括起来,并将这个类变量作为参数传入synchronized块。下面的代码演示了如何同步特定的类方法: 运行结果如下: 看到上面的运行 阅读全文
posted @ 2018-10-04 00:57 尐鱼儿 阅读(2138) 评论(0) 推荐(0) 编辑
摘要:在上面的例子中多次使用到了Thread类的join方法。我想大家可能已经猜出来join方法的功能是什么了。对,join方法的功能就是使异步执行的线程变成同步执行。也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后需要使用一个由这个线程计算得到的值,就必须使用j 阅读全文
posted @ 2018-10-04 00:56 尐鱼儿 阅读(197) 评论(0) 推荐(0) 编辑
摘要:与人有生老病死一样,线程也同样要经历开始(等待)、运行、挂起和停止四种不同的状态。这四种状态都可以通过Thread类中的方法进行控制。下面给出了Thread类中和这四种状态相关的方法。 一、创建并运行线程 线程在建立后并不马上执行run方法中的代码,而是处于等待状态。线程处于等待状态时,可以通过Th 阅读全文
posted @ 2018-10-04 00:55 尐鱼儿 阅读(193) 评论(0) 推荐(0) 编辑
摘要:实现Runnable接口的类必须使用Thread类的实例才能创建线程。通过Runnable接口创建线程分为两步: 1.将实现Runnable接口的类实例化。 2.建立一个Thread对象,并将第一步实例化后的对象作为参数传入Thread类的构造方法。 最后通过Thread类的start方法建立线程。 阅读全文
posted @ 2018-10-04 00:54 尐鱼儿 阅读(808) 评论(0) 推荐(0) 编辑
摘要:在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立一个Thread实例。因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例。Thread类的构造方法被重载了八次,构造方法如下: Ru 阅读全文
posted @ 2018-10-04 00:45 尐鱼儿 阅读(229) 评论(0) 推荐(0) 编辑
摘要:一、线程概述 线程是程序运行的基本执行单元。当操作系统(不包括单线程的操作系统,如微软早期的DOS)在执行一个程序时,会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被称为主线程)来作为这个程序运行的入口点。因此,在操作系统中运行的任何程序都至少有一个主线程。 进程和线程是现代 阅读全文
posted @ 2018-10-04 00:38 尐鱼儿 阅读(172) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示