在Java 线程中返回值的用法】的更多相关文章

http://icgemu.iteye.com/blog/467848 在Java 线程中返回值的用法 博客分类: Java Javathread  有时在执行线程中需要在线程中返回一个值:常规中我们会用Runnable接口和Thread类设置一个变量:在run()中改变变量的值,再用一个get方法取得该值,但是run何时完成是未知的:我们需要一定的机制来保证. 在在Java se5有个Callable接口:我们可以用该接口来完成该功能: 代码如: package com.threads.tes…
在Java中返回值定义为int类型的 方法return 1:中返回的是Integer值,在返回的时候基本类型值1被封装为Integer类型. 定义一个Test类,在异常处理try中和finally中分别return : public class Test { public static void main(String[] args) { System.out.println(new Test().test()); } int test() { try { return func1(); }fi…
  ThreadLocal类的使用 变量值的共享可以使用public static变量的形式,所有的线程都是用同一个public static变量.如果想实现每一个线程都有自己的值.该变量可通过ThreadLocal实现 定义:ThreadLocal<T> name = new ThreadLocal<>(): 用法: 用法1.变量在线程外定义,在线程执行体内.set()赋值. 用法2.变量在定义时设置自动赋值的方法.在对应线程中运行时则自动赋值. ThreadLocal<T…
Java多线程带返回值的Callable接口 在面试的时候,有时候是不是会遇到面试会问你,Java中实现多线程的方式有几种?你知道吗?你知道Java中有可以返回值的线程吗?在具体的用法你知道吗?如果两个线程同时来调用同一个计算对象,计算对象的call方法会被调用几次你知道吗?如果这些你知道,那么凯哥(凯哥Java:kaigejava)恭喜你,本文你可以不用看了.如果你不知道这些,那么凯哥同样要恭喜你,看了凯哥这篇文章之后,就知道这些了.来看看这篇文章我们能学到什么 本节主要内容 一:三种获取多线…
前言 当开发者从单线程开发模式过渡到多线程环境,一个比较棘手的问题就是如何在一个线程中返回数据,众所周知,run()方法和start()方法不会返回任何值. 笔者在学习<Java Network Programming>一书时,总结三种常用方法:定义获取器.静态方法回调以及实例方法回调. 定义获取器 从线程中返回数据,比较直观的想法是在线程中定义一个get方法,线程执行完成后,调用get方法即可,表观如此,其实会遇到意想不到的结果. 代码清单1-1 展示了在线程中定义获取器 package t…
                                                                        面试题:java线程中sleep和wait的区别以及其资源占用情况 转自:http://www.jb51.net/article/31933.htm  Java中的多线程是一种抢占式的机制,而不是分时机制.抢占式的机制是有多个线程处于可运行状态,但是只有一个线程在运行. 共同点: 1. 他们都是在多线程的环境下,都可以在程序的调用处阻塞指定的毫秒数,并返…
C++11 std::future and std::promise 在许多时候,我们会有这样的需求--即我们想要得到线程返回的值. 但是在C++11 多线程中我们注意到,std::thread对象会忽略顶层函数的返回值. 那问题来了,我们要怎么获得线程的返回值呢? 我们通过一个例子来说明如何实现这个需求. 假设我们的app会创建一个线程来压缩一个文件夹,该线程在压缩完文件夹后会返回压缩文件 *.zip 和这个zip文件的大小,我们现在就想获得这个线程的返回值. 有两种方法可以实现这个需求: 1…
python使用threading获取线程函数返回值的实现方法 这篇文章主要介绍了python使用threading获取线程函数返回值的实现方法,需要的朋友可以参考下 threading用于提供线程相关的操作,线程是应用程序中工作的最小单元.python当前版本的多线程库没有实现优先级.线程组,线程也不能被停止.暂停.恢复.中断. threading模块提供的类:  Thread, Lock, Rlock, Condition, [Bounded]Semaphore, Event, Timer,…
关于JAVA Project.waitfor()返回值是1   0条评论 Project.waitfor()返回值是1,找了很久从网上没有发现关于1的说明. 这时对源代码调试了一下,发现Project=null.而去根目录下点击被调用的bat文件发现也可以被正确执行. 这时想到应该将标准错误流的信息打印出来,发现是bat文件的路径只获取到了第一个空格前.所以问题的原因是空格导致文件路径不能被获取. 原先的代码 String batpath = file.getCanonicalPath() +…
java线程中的sleep/wait/notify/yield/interrupt方法 sleep 该方法能够使当前线程休眠一段时间 休眠期间,不释放锁 休眠时间结束之后,进入可执行状态,加入到线程就绪队列中,并不会立即执行 调用的时候,必须捕获异常 来自Thread的静态方法,只作用于当前线程 单位毫秒 wait 该方法能干是当前线程休眠一段时间 休眠期间,释放锁 休眠时间结束之后,立即执行 调用的时候无需捕获异常 来自Object类的方法,一旦调用 单位毫秒 调用wait()方法进入休眠之后…
该例子展示了一个Java集合中迭代器的常用用法public class LinkedListTest { public static void main(String[] args) { List<String> a = new LinkedList<String>(); a.add("Amy"); a.add("Carl"); a.add("Erica"); List<String> b = new Link…
今天想实现多线程更新资产信息,所以使用到了threading,但是我需要每个线程的返回值,这就需要我在threading.Thread的基础上进行封装 def auto_asset(node): ret = salt.remote_grains_execution_sigle(node) asset_info={} asset_info['os']= ret[node]['oscodename'] asset_info['kernelrelease']= ret[node]['kernelrel…
Lua中返回值的丢失问题 -- 如果函数调用所得的多个返回值是另外一个函数的最后一个参数,或者是多指派表达式中的最后一个参数时,所有返回值将被传入或使用. -- 否则只有第一个返回值被使用或指定. ToRGB = function (ys) ,) ,) ,) red = ) --将16进制的字符串red 转换为数字即十进制 green = ) blue = ) return red,green,blue end -- 如果函数调用所得的多个返回值 是 另外一个函数的最后一个参数 .否则,只有第一…
在Java5之前,线程是没有返回值的,常常为了“有”返回值,破费周折,而且代码很不好写.或者干脆绕过这道坎,走别的路了.现在Java终于有可返回值的任务(也可以叫做线程)了. 可返回值的任务必须实现Callable接口,类似的,无返回值的任务必须Runnable接口. 执行Callable任务后,可以获取一个Future的对象,在该对象上调用get就可以获取到Callable任务返回的Object了. 下面是个很简单的例子: package com.lyc import java.util.co…
转载自http://bbs.csdn.net/topics/390731832 问题: public static String getAddress(final InputStream inputStream, final String mobile) { new Thread() { public void run() { try { Log.i(TAG, "inputStream: " + inputStream.available()); String soap = readS…
package com.company; //java中main()函数中调用其他方法的两种方式//1.实例化对象 public class returnDemo { public static void main(String[] args){ returnDemo returnDemo=new returnDemo(); returnDemo.nihao(); } //2.方法设置成static(静态方法才能调用静态方法) public static void main(String[] a…
一.概述 到目前为止,我们已经能够声明并使一个线程任务运行起来了.但是遇到一个问题:现在定义的任务都没有任何返回值,那么加入我们希望一个任务运行结束后告诉我一个结果,该结果表名任务执行成功或失败,此时该怎么办呢? 答案是使用Callable.之前定义的任务都直接实现了Runnable,该接口的run方法并无返回值.而Callable的call方法可以根据你传入的泛型参数返回对应类型的数据. 二.实现 1.实现Callable接口,定义可返回结果的线程任务 public class TaskCal…
形式参数和返回值的问题: 1:形式参数和返回值的问题(理解) (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返回值类型: 类名:返回的是该类的对象 抽象类名:返回的是该类的子类对象 接口名:返回的是该接口的实现类的对象 (3)链式编程 对象.方法1().方法2().......方法n(); 这种用法:其实在方法1()调用完毕后,应该一个对象: 方法2()调用完毕后,应该返回一个对象. 方法n()调用完毕后,可能是对象,也可以不是对象.…
1.sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁.也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据.注意该方法要捕捉异常. 例如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PRIORITY,另一个为MIN_PRIORITY,如果没有Sleep()方法,只有高优先级的线程执行完毕后,低优先级的线程才能够执行:但是高优先级的线程sleep(500)后,低优先级就有机会执行了. 总…
长期以来,多线程问题颇为受到面试官的青睐.虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用.之前,我讨论了一个wait()和sleep()方法区别的问题,这一次,我将会讨论join()和yield()方法的区别.坦白的说,实际上我并没有用过其中任何一个方法,所以,如果你感觉有不恰当的地方,请提出讨论. Java线程调度的一点背景 在各种各样的线程中,Java虚拟机必须实现一个有优先权的.基于优先级的调度程序.…
方式一:endInvoke using System; using System.Collections.Generic; using System.Text; using System.Threading; namespace ConsoleApplication6 { //调用异步方法,并返回值: //方式一,采用轮训的方式; //申明一个委托; public delegate int del(int a,int b); class Program { private static int…
(一)项目框架分析 妈妈要去做饭,发现没有酱油,让儿子去买酱油,然后回来做饭. 根据面向对象的思想,有两个对象,妈妈和儿子 主要有两个方法: (一)没有线程控制(即儿子没有买酱油回来妈妈就做好饭了)+(没有调用jion方法) (二)有线程控制(妈妈进程和儿子进程又先后影响)+(调用jion方法) 项目的结构图: (二)没有进程控制mintak Son.java主要是模拟儿子的行动,儿子买酱油的行动(与有进程控制的源程序相同) 代码如下: public class Son implements R…
读者可能会想:"在区分重载方法的时候,为什么只能以类名和方法的形参列表作为标准呢?能否考虑用方法的返回值来区分呢?" 比如下面两个方法,虽然他们有相同的名字和形式参数,但却很容易区分他们: void f() {} int f() { return 1; } 如果编译器可以根据语境明确判断出语义,比如在int x = f()中,那么的确可以据此区分重载方法. 不过,有时候你并不关心方法的返回值,你想要的是方法调用的其他效果(这常被称为"为了副作用而调用"),这时候你可…
在看<Thinking in java>的时候,看到子类的方法和父类的方法名字相同,但是返回值类型不同,然后就开始怀疑这属于覆盖吗,到网上找到了答案,分析见接下来的网址: http://ghostfromheaven.iteye.com/blog/803305 虽然作者也没有给出最后的解释,但我是这样理解的: 重写是不准许父类和子类只是返回值类型不同,而覆盖是准许父类和子类的返回值类型不一样,只不过那个返回值类型要是一种继承关系,比如文章中的process()方法返回值一个是Grain类型,一…
一.方法注意点 (1)方法的调用不一定再main方法中,可以在其他方法中进行调用,只要是程序执行到的位置,都可以去调用其他方法. (2)方法调用的时候,实参和形参要求个数对应相同,数据类型对应相同,方法不同的时候,要求能够进行相应的自动类型转换 (3)当方法的调用和方法在同一个类中的时候,“类名.”是可以省略不写的. (4)建议在一个java文件中只定义一个类为好,不要定义多个类,这里只是举例,不建议模仿 例子: public class d27_{ public static void mai…
java 和 c#都是应用很广泛的语言,也互有优劣. 这两者都是面向对象的语言,在一个方法中如果类型不是void那么是需要return一个返回值的. 但是如果想要返回多个值该怎么办? 排除直接返回一个对象(User user = new User)的情况,先拿java来说 1.将返回值拼接成一个字符串,然后再解析字符串: 2.new一个Map对象,以键值对的形式return 当然还有返回List. JSON等方法,不过总的来说都算是只有一个返回值. 如果我一个方法已经写好啦,返回的是Boolea…
在java多线程程序中,所有线程都不允许抛出未捕获的checked exception(比如sleep时的InterruptedException),也就是说各个线程需要自己把自己的checked exception处理掉.这一点是通过java.lang.Runnable.run()方法声明(因为此方法声明上没有throw exception部分)进行了约束.但是线程依然有可能抛出unchecked exception(如运行时异常),当此类异常跑抛出时,线程就会终结,而对于主线程和其他线程完全…
在平时开发过程中常常需要取一个方法的返回值,BOSS写了一个返回值类,做个练习以备不时之需: 返回值支持泛型和非泛型 先贴上代码: 非泛型返回值类: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.Serialization; namespace WindowsFormsApplication31 { [Serializable]…
当进行Debug的时候,经常会遇到"SY-SUBRC"的返回值.具体如何使用.在各种语句下返回值. ================= FUNCTION MODULE (或RFC中) SY-SUBRC 的含义 ================使用SELECT语句选择查询:SY-SUBRC = 0: 至少有一行数据,当ENDSELECT语句执行完,SY-DBCNT中保存着记录的个数.SY-SUBRC = 4: 没有数据.SY-SUBRC = 8: 只有使用“SELECT SINGLE F…
在IOS开发中,如果得到了null返回值很容易造成程序崩溃,null和nil的判断方法不同. nil的判断方法: if(data==nil) {      NSLog(@"data is nil!"); } null的判断方法: if([data isEqual:[NSNUll null]]) {      NSLog(@"data is nil!!"); }…