定金能不能退退出来

1828838356话题 05-2005-21 05:36
2340388397话题 05-2005-21 05:22
87910792话题 05-2005-20 23:48
69321230话题 05-1205-12 15:26
22055 05-2105-20 22:39
8540 05-2105-20 18:53
9860 05-2005-20 08:22
2030北京股友05-2105-21 00:40
42743805-1805-21 00:34
21334390008-0105-20 23:32
150527股友 05-2005-20 23:24
34361243四川雅安股友02-2705-20 22:30
6424股友 05-2005-20 22:16
13682湖北荆州股友05-1905-20 22:09
5340股友 05-2005-20 22:09
10878福建南平股友05-2005-20 22:04
10382广东广州股友05-2005-20 20:54
20197北京股友05-2005-20 20:51
34180安徽股友05-1605-20 20:49
5440股友 05-2005-20 20:44
409718 05-1205-20 20:40
6320股友 05-2005-20 20:17
546005-2005-20 19:53
241142704-2805-20 18:27
7033股友 05-2005-20 17:38
7796股友 05-2005-20 17:35
4812股友 05-2005-20 17:33
3960股友 05-2005-20 17:04
38727安徽合肥股友05-1405-20 16:39
38469134安徽合肥股友03-2705-20 14:43
6432北京股友05-2005-20 14:06
4020股友 05-2005-20 14:01
10280湖北武汉股友05-2005-20 14:00
8040广东广州股友05-2005-20 11:57
11361股友 05-2005-20 11:30
1110246股友 02-0705-20 11:18
150994112-1205-20 10:45
5600广东广州股友05-2005-20 10:42
7630广东广州股友05-2005-20 10:31
47575股友 05-1505-20 10:22
13514福建南平股友05-1905-20 10:21
10927股友 05-2005-20 10:19
875205-2005-20 10:19
4170北京股友05-2005-20 10:16
628721股友 05-0705-20 10:13
912130股友 04-1005-20 10:11
12861印尼股友05-1305-20 09:45
31563安徽马鞍山股友05-1805-20 09:16
4810股友 05-2005-20 09:08
7210福建福州股友05-2005-20 08:03
13091股友 05-1905-20 08:02
63503140 03-3105-19 22:44
937516印度股友02-0705-19 21:36
65850安徽巢湖股友04-2505-19 20:19
2401405-1905-19 20:12
1390305-1905-19 20:01
76372212-1905-19 20:00
18764天津股友05-1905-19 19:56
24015股友 05-1805-19 19:42
1195328 04-1805-19 19:09
9010 山东枣庄股友05-1905-19 18:52
7870山东枣庄股友05-1905-19 18:51
18142上海股友06-2105-19 18:35
910718股友 04-3005-19 16:43
10561股友 05-1905-19 16:25
1815505-1905-19 15:33
22199股友 05-1805-19 15:14
171712北京股友05-1905-19 15:05
9260股友 05-1905-19 14:53
10553北京股友05-1905-19 14:52
193011股友 05-1805-19 14:45
840005-1905-19 14:41
18893北京股友05-1905-19 13:46
11160四川内江股友05-1905-19 10:51
12123股友 05-1905-19 10:48
395313股友
05-1705-19 10:14
7590上海股友05-1905-19 09:32
14140 05-1905-19 08:21
26117福建南平股友05-1805-19 06:22
13250广东东莞股友05-1805-18 18:18
325810山东泰安股友05-1705-18 17:40
453733股友 05-1605-18 17:07
60191604-1205-18 16:50
59991104-0905-18 16:43
共有帖子数 78532 篇
发表新主题
作者:您目前是匿名发表 &
作者:,欢迎留言活跃度是记录该律师7天内的咨询回复情况好评率:100%近期帮助过:2948人从业年限:7 年律师所在地:重庆-沙坪坝区擅长领域:交通事故工程建筑刑事辩护法律顾问公司法(电话咨询请说明来自华律网)能不能将V平方-V0=2gh退出来_百度作业帮
拍照搜题,秒出答案
能不能将V平方-V0=2gh退出来
能不能将V平方-V0=2gh退出来
这貌似是推导公式
不过忘了怎么推得了
什么退出来?
推导没什么用 记着就好了
不对,物理是要求真不是做题
从 初速度 vo 加速到 vt 需要的时间是
t=(vt-vo)/a
这一段时间的 距离是
s= vot+ at?/2
s=vo(vt-vo)/a + (vt-vo)?/2a
2as= 2vo(vt-vo)+vt?-2vtvo+vo?
2as=2vovt-2vo?+vt?-2vtvo+vo?
2as=vt?-vo?
a是加速度,x是位移
怎么样,有疑问吗?
t哪里我之前一直没办法继续了,感谢
看懂的话请采纳百度贴吧申请进入之后能不能退出来?_百度知道
百度贴吧申请进入之后能不能退出来?
MRP食尸鬼 [申请]音乐无潮流会员,然后拖到底:Mrp毕业1633我是Mrp毕业 了解会员特权目录点击本吧信息下的会员。本吧信息关注吧主,右下角有个退出本吧就好:****
其他类似问题
百度贴吧的相关知识
按默认排序
其他2条回答
你的电脑是不是中毒了
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁如何终止java线程 - anhuidelinger的专栏
- 博客频道 - CSDN.NET
27525人阅读
& &终止线程的三种方法&
&&& 有三种方法可以使终止线程。&
&&& 1.& 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。&
&&& 2.& 使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。&
&&& 3.& 使用interrupt方法中断线程。&
1. 使用退出标志终止线程&
&&& 当run方法执行完后,线程就会退出。但有时run方法是永远不会结束的。如在服务端程序中使用线程进行监听客户端请求,或是其他的需要循环处理的任务。在这种情况下,一般是将这些任务放在一个循环中,如while循环。如果想让循环永远运行下去,可以使用while(true){……}来处理。但要想使while循环在某一特定条件下退出,最直接的方法就是设一个boolean类型的标志,并通过设置这个标志为true或false来控制while循环是否退出。下面给出了一个利用退出标志终止线程的例子。&
package chapter2;&
public class ThreadFlag extends Thread&
&&& public volatile boolean exit =&
&&& public void run()&
&&&&&&& while (!exit);&
&&& public static void main(String[] args) throws Exception&
&&&&&&& ThreadFlag thread = new ThreadFlag();&
&&&&&&& thread.start();&
&&&&&&& sleep(5000); // 主线程延迟5秒&
&&&&&&& thread.exit =& // 终止线程thread&
&&&&&&& thread.join();&
&&&&&&& System.out.println(&线程退出!&);&
&&& 在上面代码中定义了一个退出标志exit,当exit为true时,while循环退出,exit的默认值为false.在定义exit时,使用了一个Java关键字volatile,这个关键字的目的是使exit同步,也就是说在同一时刻只能由一个线程来修改exit的值,&
&&& 2. 使用stop方法终止线程&
&&& 使用stop方法可以强行终止正在运行或挂起的线程。我们可以使用如下的代码来终止线程:&
thread.stop();&
&&& 虽然使用上面的代码可以终止线程,但使用stop方法是很危险的,就象突然关闭计算机电源,而不是按正常程序关机一样,可能会产生不可预料的结果,因此,并不推荐使用stop方法来终止线程。&
&&& 3. 使用interrupt方法终止线程&
&&& 使用interrupt方法来终端线程可分为两种情况:&
&&& (1)线程处于阻塞状态,如使用了sleep方法。&
&&& (2)使用while(!isInterrupted()){……}来判断线程是否被中断。&
&&& 在第一种情况下使用interrupt方法,sleep方法将抛出一个InterruptedException例外,而在第二种情况下线程将直接退出。下面的代码演示了在第一种情况下使用interrupt方法。&
package chapter2;&
public class ThreadInterrupt extends Thread&
&&& public void run()&
&&&&&&& try&
&&&&&&& {&
&&&&&&&&&&& sleep(50000);& // 延迟50秒&
&&&&&&& }&
&&&&&&& catch (InterruptedException e)&
&&&&&&& {&
&&&&&&&&&&& System.out.println(e.getMessage());&
&&&&&&& }&
&&& public static void main(String[] args) throws Exception&
&&&&&&& Thread thread = new ThreadInterrupt();&
&&&&&&& thread.start();&
&&&&&&& System.out.println(&在50秒之内按任意键中断线程!&);&
&&&&&&& System.in.read();&
&&&&&&& thread.interrupt();&
&&&&&&& thread.join();&
&&&&&&& System.out.println(&线程已经退出!&);&
&&& 上面代码的运行结果如下:&
&&& 在50秒之内按任意键中断线程!&
&&& sleep interrupted&
&&& 线程已经退出!&
&&& 在调用interrupt方法后, sleep方法抛出异常,然后输出错误信息:sleep interrupted.&
&&& 注意:在Thread类中有两个方法可以判断线程是否通过interrupt方法被终止。一个是静态的方法interrupted(),一个是非静态的方法isInterrupted(),这两个方法的区别是interrupted用来判断当前线是否被中断,而isInterrupted可以用来判断其他线程是否被中断。因此,while
(!isInterrupted())也可以换成while (!Thread.interrupted())。&
如何停止java的线程一直是一个困恼我们开发多线程程序的一个问题。这个问题最终在Java5的中得到了回答:使用,让线程在run方法中停止。
在Java的多线程编程中,类型包含了一些列的方法,&,&&and&,&&and&。通过这些方法,我们可以对线程进行方便的操作,但是这些方法中,只有方法得到了保留。
在Sun公司的一篇文章《&》中详细讲解了舍弃这些方法的原因。那么,我们究竟应该如何停止线程呢?
建议使用的方法
在《&》中,建议使用如下的方法来停止线程:
&&&&private&volatile&T&
&&&&public&void&stop() {&
&&&&&&& blinker =&null;&
&&&&public&void&run() {&
&&&&&&& Thread thisThread = Thread.currentThread();&
&&&&&&&&while&(blinker == thisThread) {&
&&&&&&&&&&&&try&{&
&&&&&&&&&&&&&&& thisThread.sleep(interval);&
&&&&&&&&&&& }&catch&(InterruptedException e){&
&&&&&&&&&&& }&
&&&&&&&&&&& repaint();&
&&&&&&& }&
关于使用volatile关键字的原因,请查看。
当线程处于非运行(Run)状态
当线程处于下面的状况时,属于非运行状态:
当sleep方法被调用。
当wait方法被调用。
当被I/O阻塞,可能是文件或者网络等等。
当线程处于上述的状态时,使用前面介绍的方法就不可用了。这个时候,我们可以使用来打破阻塞的情况,如:
public void stop() {
Thread tmpBlinker =
blinker = null;
if (tmpBlinker != null) {
tmpBlinker.interrupt();
当被调用的时候,将被抛出,所以你可以再run方法中捕获这个异常,让线程安全退出:
} catch (InterruptedException iex) {
throw new RuntimeException(&Interrupted&,iex);
当线程被I/O阻塞的时候,调用的情况是依赖与实际运行的平台的。在Solaris和Linux平台上将会抛出InterruptedIOException的异常,但是Windows上面不会有这种异常。所以,我们处理这种问题不能依靠于平台的实现。如:
package blogs.gpcuster
import java.net.*;
import java.io.*;
public abstract class InterruptibleReader extends Thread {
private Object lock = new Object( );
private InputS
private boolean
private int
protected void processData(byte[] b, int n) { }
class ReaderClass extends Thread {
public void run( ) {
byte[] b = new byte[buflen];
while (!done) {
int n = is.read(b, 0, buflen);
processData(b, n);
} catch (IOException ioe) {
done = true;
synchronized(lock) {
lock.notify( );
public InterruptibleReader(InputStream is) {
this(is, 512);
public InterruptibleReader(InputStream is, int len) {
public void run( ) {
ReaderClass rc = new ReaderClass( );
synchronized(lock) {
rc.start( );
while (!done) {
lock.wait( );
} catch (InterruptedException ie) {
done = true;
rc.interrupt( );
is.close( );
} catch (IOException ioe) {}
另外,我们也可以使用接口。 实现了接口的类可以在阻塞的时候抛出。如:
package blogs.gpcuster
import java.io.BufferedR
import java.io.FileD
import java.io.FileInputS
import java.io.InputS
import java.io.InputStreamR
import java.nio.channels.C
public class InterruptInput {
static BufferedReader in = new BufferedReader(
new InputStreamReader(
Channels.newInputStream(
(new FileInputStream(FileDescriptor.in)).getChannel())));
public static void main(String args[]) {
System.out.println(&Enter lines of input (user ctrl+Z Enter to terminate):&);
System.out.println(&(Input thread will be interrupted in 10 sec.)&);
// interrupt input in 10 sec
(new TimeOut()).start();
String line = null;
while ((line = in.readLine()) != null) {
System.out.println(&Read line:'&+line+&'&);
} catch (Exception ex) {
System.out.println(ex.toString()); // printStackTrace();
public static class TimeOut extends Thread {
int sleepTime = 10000;
Thread threadToInterrupt = null;
public TimeOut() {
// interrupt thread that creates this TimeOut.
threadToInterrupt = Thread.currentThread();
setDaemon(true);
public void run() {
sleep(10000); // wait 10 sec
} catch(InterruptedException ex) {/*ignore*/}
threadToInterrupt.interrupt();
这里还需要注意一点,当线程处于写文件的状态时,调用不会中断线程。
不提倡的stop()方法&
臭名昭著的stop()停止线程的方法已不提倡使用了,原因是什么呢?
 当在一个线程对象上调用stop()方法时,这个线程对象所运行的线程就会立即停止,并抛出特殊的ThreadDeath()异常。这里的“立即”因为太“立即”了,
假如一个线程正在执行:
synchronized void {
  由于方法是同步的,多个线程访问时总能保证x,y被同时赋值,而如果一个线程正在执行到x = 3;时,被调用了 stop()方法,即使在同步块中,它也干脆地stop了,这样就产生了不完整的残废数据。而多线程编程中最最基础的条件要保证数据的完整性,所以请忘记 线程的stop方法,以后我们再也不要说“停止线程”了。
  &如何才能“结束”一个线程?
interupt()中断线程
一个线程从运行到真正的结束,应该有三个阶段:
正常运行.处理结束前的工作,也就是准备结束.结束退出.
那么如何让一个线程结束呢?既然不能调用stop,可用的只的interrupt()方法。但interrupt()方法只是改变了线程的运行状态,如何让它退出运行?对于一般逻辑,只要线程状态已经中断,我们就可以让它退出,这里我们定义一个线程类ThreadA,所以这样的语句可以保证线程在中断后就能结束运行:
while(!isInterrupted()){
,一个测试类,ThreadDemo
  这样ThreadDemo调用interrupt()方法,isInterrupted()为true,就会退出运行。但是如果线程正在执行wait,sleep,join方法,你调用interrupt()方法,这个逻辑就不完全了。
我们可以这样处理:
public void run(){
while(!isInterrupted()){
}catch(InterruptedException e){
想一想,如果一个正在sleep的线程,在调用interrupt后,会如何?wait方法检查到isInterrupted()为true,抛出异常, 而你又没有处理。而一个抛出了InterruptedException的线程的状态马上就会被置为非中断状态,如果catch语句没有处理异常,则下一 次循环中isInterrupted()为false,线程会继续执行,可能你N次抛出异常,也无法让线程停止。
这个错误情况的实例代码
public&class&ThreadA&extends&Thread&{
&&&int&count=0;
&&&public&void&run(){
&&&&&&&System.out.println(getName()+&将要运行...&);
&&&&&&&while(!this.isInterrupted()){
&&&&&&&&&&&System.out.println(getName()+&运行中&+count++);
&&&&&&&&&&&try{
&&&&&&&&&&&&&&&Thread.sleep(400);
&&&&&&&&&&&}catch(InterruptedException&e){
&&&&&&&&&&&&&&&System.out.println(getName()+&从阻塞中退出...&);
&&&&&&&&&&&&&&&System.out.println(&this.isInterrupted()=&+this.isInterrupted());
&&&&&&&&&&&}
&&&&&&&System.out.println(getName()+&已经终止!&);
ThreadDemo
public&class&ThreadDemo&{
&&&&public&static&void&main(String&argv[])throws&InterruptedException{
&&&&&&&&ThreadA&ta=new&ThreadA();
&&&&&&&&ta.setName(&ThreadA&);
&&&&&&&&ta.start();
&&&&&&&&Thread.sleep(2000);
&&&&&&&&System.out.println(ta.getName()+&正在被中断...&);
&&&&&&&&ta.interrupt();
&&&&&&&&System.out.println(&ta.isInterrupted()=&+ta.isInterrupted());
 那么如何能确保线程真正停止?在线程同步的时候我们有一个叫“二次惰性检测”(double check),能在提高效率的基础上又确保线程真正中同步控制中。那么我把线程正确退出的方法称为“双重安全退出”,即不以isInterrupted ()为循环条件。而以一个标记作为循环条件:
正确的ThreadA代码是:
public&class&ThreadA&extends&Thread&{
&&&&private&boolean&isInterrupted=false;
&&&int&count=0;
&&&public&void&interrupt(){
&&&&&&&isInterrupted&=&true;
&&&&&&&super.interrupt();
&&&public&void&run(){
&&&&&&&System.out.println(getName()+&将要运行...&);
&&&&&&&while(!isInterrupted){
&&&&&&&&&&&System.out.println(getName()+&运行中&+count++);
&&&&&&&&&&&try{
&&&&&&&&&&&&&&&Thread.sleep(400);
&&&&&&&&&&&}catch(InterruptedException&e){
&&&&&&&&&&&&&&&System.out.println(getName()+&从阻塞中退出...&);
&&&&&&&&&&&&&&&System.out.println(&this.isInterrupted()=&+this.isInterrupted());
&&&&&&&&&&&}
&&&&&&&System.out.println(getName()+&已经终止!&);
&& &在多线程编程中,线程的终止可以说是一个必然会遇到的操作。但是这样一个常见的操作其实并不是一个能够轻而易举实现的操作,而且在某些场景下情况会变得更复杂更棘手。
&&&&&&& Java标准中的类提供了方法可以终止线程,但是很遗憾,这种方法不建议使用,原因是这种方式终止线程中断临界区代码执行,并会释放线程之前获取的监控器锁,这样势必引起某些对象状态的不一致(因为临界区代码一般是原子的,不会被干扰的),具体原因可以参考资料。这样一来,就必须根据线程的特点使用不同的替代方案以终止线程。根据停止线程时线程执行状态的不同有如下停止线程的方法。
1 处于运行状态的线程停止
&&&&&&& 处于运行状态的线程就是常见的处于一个循环中不断执行业务流程的线程,这样的线程需要通过设置停止变量的方式,在每次循环开始处判断变量是否改变为停止,以达到停止线程的目的,比如如下代码框架:
&&&&&&& 如果主线程调用该线程对象的方法,对象被设置为,则线程的下次循环中!,因而可以退出循环,并退出方法而使线程结束。将引用变量的类型前加上关键字的目的是防止编译器对该变量存取时的优化,这种优化主要是缓存对变量的修改,这将使其他线程不会立刻看到修改后的值,从而影响退出。此外,标准保证被修饰的变量的读写都是原子的。
&&&&&&& 上述的类型的完全可以由更为简单的类型变量代替。
2 即将或正在处于非运行态的线程停止
&&&&&&& 线程的非运行状态常见的有如下两种情况:
可中断等待:线程调用了或方法,这些方法可抛出;
阻塞:线程调用了的操作或者的操作,处于阻塞状态。
2.1 处于可中断等待线程的停止
&&&&&&& 如果线程调用了可中断等待方法,正处于等待状态,则可以通过调用的方法让等待方法抛出异常,然后在循环外截获并处理异常,这样便跳出了线程方法中的循环,以使线程顺利结束。
&&&&&&& 上述的方法中需要做的修改就是在设置停止变量之后调用方法:
&&&&&&&& 特别的,对象的方法会设置线程的,所以我们可以通过判断对象的方法的返回值来判断是否应该继续方法内的循环,从而代替线程中的停止变量。这时的上述方法的代码框架就变为如下:
&&&&&&& 需要注意的是对象的不会清除标记,但是对象的方法(与方法区别)会清除该标记。
2.2 处于IO阻塞状态线程的停止
&&&&&&&& Java中的输入输出流并没有类似于的机制,但是的接口提供了这样的机制,任何实现了接口的类的阻塞都是可中断的,中断时抛出,也是由对象调用方法完成中断调用。中断后将关闭通道。
&&&&&&& 以文件为例,构造一个可中断的文件输入流的代码如下:
&&&&&&&& 实现接口的类包括,也就是说,原则上可以实现文件、、管道的可中断阻塞操作。
&&&&&&& 虽然解除阻塞的方法还可以直接调用对象的方法,这也会抛出异常。但是机制能够使处于阻塞的线程能够有一个和处于中断等待的线程一致的线程停止方案。
3 处于大数据IO读写中的线程停止
&&&&&&&& 处于大数据读写中的线程实际上处于运行状态,而不是等待或阻塞状态,因此上面的机制不适用。线程处于读写中可以看成是线程运行中的一种特例。停止这样的线程的办法是强行掉输入输出流对象,使其抛出异常,进而使线程停止。
&&&&&&& 最好的建议是将大数据的读写操作放在循环中进行,这样可以在每次循环中都有线程停止的时机,这也就将问题转化为如何停止正在运行中的线程的问题了。
4 在线程运行前停止线程
&&&&&&&& 有时,线程中的方法需要足够健壮以支持在线程实际运行前终止线程的情况。即在创建后,到的方法调用前这段时间,调用自定义的方法也要奏效。从上述的停止处于等待状态线程的代码示例中,方法并不能终止运行前的线程,因为在的方法被调用前,调用方法并不会将对象的中断状态置位,这样当方法执行时,的方法返回,线程将继续执行下去。
&&&&&&&& 为了解决这个问题,不得不自己再额外创建一个标志量,并将其加入方法的最开头:
&&&&&&&& 还有一种解决方法,也可以在中直接使用该自定义标志量,而不使用方法判断线程是否应该停止。这种方法的代码框架实际上和停止运行时线程的一样。
5 参考资料
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:408806次
积分:4186
积分:4186
排名:第3092名
原创:34篇
转载:477篇
评论:19条
(1)(3)(5)(2)(10)(1)(6)(5)(5)(18)(59)(33)(117)(24)(23)(48)(67)(27)(20)(23)(15)}

我要回帖

更多关于 改签的票能不能退 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信