多线程向flink集群提交任务失败

Caused by: org.apache.flink.client.program.ProgramInvocationException: The program execution failed: Could not upload the program's JAR files to the JobManager.
at org.apache.flink.client.program.ClusterClient.runDetached(ClusterClient.java:454)
at org.apache.flink.client.program.StandaloneClusterClient.submitJob(StandaloneClusterClient.java:99)
at org.apache.flink.client.program.ClusterClient.run(ClusterClient.java:400)
at org.apache.flink.client.program.DetachedEnvironment.finalizeExecute(DetachedEnvironment.java:76)
at org.apache.flink.client.program.ClusterClient.run(ClusterClient.java:345)
... 14 common frames omitted
Caused by: org.apache.flink.runtime.client.JobSubmissionException: Could not upload the program's JAR files to the JobManager.
at org.apache.flink.runtime.client.JobClient.submitJobDetached(JobClient.java:410)
at org.apache.flink.client.program.ClusterClient.runDetached(ClusterClient.java:451)
... 19 common frames omitted
Caused by: java.io.IOException: Could not retrieve the JobManager's blob port.
at org.apache.flink.runtime.blob.BlobClient.uploadJarFiles(BlobClient.java:745)
at org.apache.flink.runtime.jobgraph.JobGraph.uploadUserJars(JobGraph.java:565)
at org.apache.flink.runtime.client.JobClient.submitJobDetached(JobClient.java:407)
... 20 common frames omitted
Caused by: java.io.IOException: PUT operation failed: Could not transfer error message
at org.apache.flink.runtime.blob.BlobClient.putInputStream(BlobClient.java:512)
at org.apache.flink.runtime.blob.BlobClient.put(BlobClient.java:374)
at org.apache.flink.runtime.blob.BlobClient.uploadJarFiles(BlobClient.java:771)
at org.apache.flink.runtime.blob.BlobClient.uploadJarFiles(BlobClient.java:740)
... 22 common frames omitted
Caused by: java.io.IOException: Could not transfer error message
at org.apache.flink.runtime.blob.BlobClient.readExceptionFromStream(BlobClient.java:799)
at org.apache.flink.runtime.blob.BlobClient.receivePutResponseAndCompare(BlobClient.java:537)
at org.apache.flink.runtime.blob.BlobClient.putInputStream(BlobClient.java:508)
... 25 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.ipc.RemoteException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.apache.flink.util.InstantiationUtil$ClassLoaderObjectInputStream.resolveClass(InstantiationUtil.java:64)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1613)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1774)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000)
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:501)
at java.lang.Throwable.readObject(Throwable.java:914)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1058)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1900)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:290)
at org.apache.flink.runtime.blob.BlobClient.readExceptionFromStream(BlobClient.java:795)
... 27 common frames omitted

2个回答

自己回复一下 对于flink提交任务时 会将任务对应的jar文件上传至远程主机(如何上传因集群部署方式不同而不同),最终存储到hdfs上,然后taskmanager会去hdfs上下载此文件。
上传文件时,会生成对应的文件名,而文件名是根据jar包的字节码生成的(极端的说,即便jar包对应的源代码中多了一个空格,生成的文件名都不会相同)。
所以,同一个jar会生成同样的文件名,而它又在同样的路径中,这时就会出现多线程对同一文件读写,典型的多线程访问同一资源的问题。这也就是导致上述问题的根源。

多线程提交10个任务,其中大部分成功,部分失败。以上是失败的报错信息。我对着源码看了,问题出在向jobclient类中:当blobClient.put(is)时
(其中is为jar对应的inputstream),使用一个与blob server连接的socket向集群提交jar。
提交完成后会用这个socket获取返回数据:final InputStream is = this.socket.getInputStream();,然而这个返回的状态码为1,其含义为:Internal code to identify an erroneous operation.。然后又调用readExceptionFromStream方法解析报错信息,这个解析报错的方法也报错了: java.lang.ClassNotFoundException: org.apache.hadoop.ipc.RemoteException。有没有大神指点一下,给指个方向。感谢!!!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C++ Builder6 子线程向一个StringGrid写入数据时无法再点击Form上的按钮

C++ Builder6 子线程向一个StringGrid写入数据时无法再点击Form上的按钮

安卓如何用class的子线程向Activity中的主线程传信息

如题,在MainActivity中的一个TextView(UI--主线程)需要根据另一个class中的(子)线程的结果进行更改,请问大佬们如何在它们之间传递消息。 我试过在一个activity中使用handler传递消息(自己传自己),activity和class之间就不知该怎么写代码了。

创建子线程向列队消息发送消息使主线程执行handleMessage()

后台打印“从网络获取图片” 但是在ImageView的UI界面未显示图片 如图 ![图片说明](https://img-ask.csdn.net/upload/201607/22/1469176923_748369.png) 代码: public class MainActivity extends Activity { Handler handler = new Handler(){ //只要消息列队里面有消息,此方法就调用 public void handleMessage(android.os.Message msg) { //8,显示 ImageView iv = (ImageView) findViewById(R.id.iv); //把图片设置进ListView iv.setImageBitmap((Bitmap) msg.obj); } }; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click(View v){ final String path = "http://192.168.0.102:8080/mm.jpg"; //判断缓存是否存在 final File file = new File(getCacheDir(), getFileName(path)); if(file.exists()){ System.out.println("从缓存中读取图片"); Bitmap bm = BitmapFactory.decodeFile(file.getAbsolutePath()); ImageView iv = (ImageView) findViewById(R.id.iv); iv.setImageBitmap(bm); }else{ System.out.println("从网络获取图片"); Thread t = new Thread(){ @Override public void run() { //请求网址,获取图片 //1,确认网址 try { //2,获取URL对象 URL url = new URL(path); //3,获取连接对象,此时还未建立连接 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); //4,初始化连接对象 conn.setRequestMethod("GET"); //设置请求方法 conn.setReadTimeout(5000); //设置读取超时 conn.setConnectTimeout(5000); //设置连接超时 //5,与服务器建立连接 conn.connect(); //判断是否请求成功,通过请求码对比 if(conn.getResponseCode() == 200){ //6,拿到服务器返回的流,客户请求的数据就保存在流中 InputStream is = conn.getInputStream(); //7,开始文件输出流,把读取的字节写到本地 FileOutputStream fos = new FileOutputStream(file); //从流中读数据的同时将数据写到内存 int len = 0; byte[]b = new byte[1024]; while((len = is.read()) != -1){ fos.write(b, 0, len); } fos.close(); //将图片显示到屏幕 //通过图片的绝对路径构造出一个Bitmap对象 Bitmap bm = BitmapFactory.decodeFile(file.getAbsolutePath()); //创建消息对象 Message msg = new Message(); //将bm放入消息中 msg.obj = bm; //子线程向列队消息发送消息 handler.sendMessage(msg); }else{ Looper.prepare(); Toast.makeText(MainActivity.this, "请求失败", 0).show(); Looper.loop(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }; t.start(); } } public String getFileName(String path){ int index = path.lastIndexOf("/"); return path.substring(index + 1); } }

C#WinForm多线程更新treeview问题

C#新手。。。C#程序调用dll,dll中有一个回调函数用于接受数据,想根据接收到的数据增加treeview节点,怎么操作?直接在回调函数中程序会崩溃。 nt iSize = cJSON_GetArraySize(iptr11); for (int i = 0; i < iSize; i++) { IntPtr iptr12 = cJSON_GetArrayItem(iptr11, i); if (iptr12 != IntPtr.Zero) { IntPtr iptr13 = cJSON_GetObjectItem(iptr12, "deviceId");//这个“DeviceName”名称待定 if (iptr13 != IntPtr.Zero) { Json entries = (Json)Marshal.PtrToStructure(iptr13, typeof(Json)); string str = entries.valuestring; this.treeView1.Nodes.Add(str); } } }

为什么多线程给list添加内容,最后返回为空?

public class Test { static List<String> list = new ArrayList<>(); Object object = new Object(); public List<String> getList() { new Thread(new Runnable() { @Override public void run() { synchronized (object) { list.add("1"); } } }).start(); return list; } }

关于Redis数据库的java代码多线程读写性能问题,希望可以帮忙看看、、、

渣渣一枚、、由于项目关系,需要用到内存数据库来存key-value所以就开始研究redis这个数据库。现在已经把redis放在了CentOS的测试服务器上,然后通过网上的资料写了链接代码! 测试用了100个线程,每个线程插入10000条数据,结果竟然花了**200s**, 同事用memcached测试同样的数据只要了**20s** 而在linux中用redis自带的redis-benchmark查询性能 结果如下: ``` ====== PING_INLINE ====== 100000 requests completed in 0.72 seconds 50 parallel clients 3 bytes payload keep alive: 1 100.00% <= 0 milliseconds 139082.06 requests per second ====== PING_BULK ====== 100000 requests completed in 0.73 seconds 50 parallel clients 3 bytes payload keep alive: 1 100.00% <= 0 milliseconds 136798.91 requests per second ====== SET ====== 100000 requests completed in 0.72 seconds 50 parallel clients 3 bytes payload keep alive: 1 100.00% <= 0 milliseconds 139275.77 requests per second ====== GET ====== 100000 requests completed in 0.73 seconds 50 parallel clients 3 bytes payload keep alive: 1 100.00% <= 0 milliseconds 137931.03 requests per second ====== INCR ====== 100000 requests completed in 0.71 seconds 50 parallel clients 3 bytes payload keep alive: 1 100.00% <= 0 milliseconds 141643.06 requests per second ====== LPUSH ====== 100000 requests completed in 0.71 seconds 50 parallel clients 3 bytes payload keep alive: 1 100.00% <= 0 milliseconds 141442.72 requests per second ====== LPOP ====== 100000 requests completed in 0.72 seconds 50 parallel clients 3 bytes payload keep alive: 1 100.00% <= 0 milliseconds 139664.80 requests per second ====== SADD ====== 100000 requests completed in 0.71 seconds 50 parallel clients 3 bytes payload keep alive: 1 100.00% <= 0 milliseconds 140845.08 requests per second ====== SPOP ====== 100000 requests completed in 0.71 seconds 50 parallel clients 3 bytes payload keep alive: 1 100.00% <= 0 milliseconds 140252.45 requests per second ====== LPUSH (needed to benchmark LRANGE) ====== 100000 requests completed in 0.71 seconds 50 parallel clients 3 bytes payload keep alive: 1 100.00% <= 0 milliseconds 141043.72 requests per second ====== LRANGE_100 (first 100 elements) ====== 100000 requests completed in 1.77 seconds 50 parallel clients 3 bytes payload keep alive: 1 100.00% <= 0 milliseconds 56433.41 requests per second ====== LRANGE_300 (first 300 elements) ====== 100000 requests completed in 4.78 seconds 50 parallel clients 3 bytes payload keep alive: 1 1.20% <= 1 milliseconds 99.60% <= 2 milliseconds 99.93% <= 3 milliseconds 100.00% <= 3 milliseconds 20938.02 requests per second ====== LRANGE_500 (first 450 elements) ====== 100000 requests completed in 6.78 seconds 50 parallel clients 3 bytes payload keep alive: 1 0.02% <= 1 milliseconds 99.75% <= 2 milliseconds 99.96% <= 3 milliseconds 99.99% <= 4 milliseconds 100.00% <= 4 milliseconds 14749.26 requests per second ====== LRANGE_600 (first 600 elements) ====== 100000 requests completed in 8.76 seconds 50 parallel clients 3 bytes payload keep alive: 1 0.02% <= 1 milliseconds 7.64% <= 2 milliseconds 99.67% <= 3 milliseconds 99.75% <= 4 milliseconds 99.83% <= 5 milliseconds 99.90% <= 6 milliseconds 99.96% <= 7 milliseconds 100.00% <= 8 milliseconds 100.00% <= 8 milliseconds 11416.83 requests per second ====== MSET (10 keys) ====== 100000 requests completed in 1.13 seconds 50 parallel clients 3 bytes payload keep alive: 1 99.98% <= 1 milliseconds 100.00% <= 1 milliseconds 88573.96 requests per second ``` 显示出来的set、get什么的都是10W/S的请求, 所以我的代码应该有问题,不然也不会出现200S的结果,应该是在多线程哪里出了问题,希望可以帮我看看、、 新人、、木有C币,希望大家帮我看看! ``` public class RedisClient { private Jedis jedis;//非切片额客户端连接 private JedisPool jedisPool;//非切片连接池 private ShardedJedis shardedJedis;//切片额客户端连接 private ShardedJedisPool shardedJedisPool;//切片连接池 private static long START_TIME; private static int TOTAL_COUNT =100; private static int END_COUNT; private static final int COUNT = 10000; public RedisClient() { initialPool(); initialShardedPool(); shardedJedis = shardedJedisPool.getResource(); jedis = jedisPool.getResource(); } /** * 初始化非切片池(非分布式) */ private void initialPool() { // 池基本配置 JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(128); config.setMinIdle(10); config.setMaxIdle(128); config.setMaxWaitMillis(30000l); config.setTestOnBorrow(false); jedisPool = new JedisPool(config, "192.168.1.110", 6379, 0); } /** * 初始化切片池(分布池) */ private void initialShardedPool() { // 池基本配置 JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(128); config.setMinIdle(10); config.setMaxIdle(128); config.setMaxWaitMillis(30000l); config.setTestOnBorrow(false); // slave链接 List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>(); shards.add(new JedisShardInfo("192.168.1.110", 6379, 0)); // 构造池 shardedJedisPool = new ShardedJedisPool(config, shards); } public void show() { HashOperate(); } private void HashOperate() { System.out.println("======================hash=========================="); //清空数据 System.out.println(jedis.flushDB()); System.out.println("=============增============="); Thread[] threads = new Thread[TOTAL_COUNT]; for (int i = 0; i < TOTAL_COUNT; i++) { threads[i] = new TTestThread(i * COUNT, COUNT); } START_TIME = System.currentTimeMillis(); for (int i = 0; i < TOTAL_COUNT; ++i) { threads[i].start(); } } private class TTestThread extends Thread { private int mOffset; private int mCount; private Transaction tx; public TTestThread(int offset, int count) { mOffset = offset; mCount = count; } @Override public void run() { super.run(); ShardedJedis shardedJedis = shardedJedisPool.getResource(); try { for (int i = mOffset; i < mCount + mOffset; ++i) { shardedJedis.hset("hashs", "key" + i, String.valueOf(i)); } } finally { shardedJedisPool.returnResource(shardedJedis); } synchronized (TTestThread.class) { ++END_COUNT; if (END_COUNT == TOTAL_COUNT) { System.out.println("time is " + (System.currentTimeMillis() - START_TIME)); } } } } } ```

MongoDB多线程读取集合和单线程效率一样?

要读取MongoDB中的50W条数据,因为数据太多决定分批读取每次读取10000条,每次读取时间大概需要2s,循环50次大概是用50*2=100s; 由于化肥时间太长决定使用多线程,程序中并发了10个线程去查询, 本来以为值需要2*50/10=10s钟就可以完成,结果发现最终总时间还是用了100s 郁闷。。。。 查看日志的时候发现第一个线程用可2s,然后后面的4s 5s 8s 。。。。100s逐渐增多。 现象看来是线程读取出现了等待,mongo读取难道也是阻塞的吗,求大神指导

c++中如何将子线程的参数传回主线程

DWORD WINAPI threadFunction(LPVOID pArg) //返回值进程id(dword类型) 参数类型 LPVOID { tNum myNum = *((tNum *)pArg); //将参数转化成int型 EnterCriticalSection(&gCS); // 进入临界区 myNum.string_back = FuzzyHash(myNum.string_in); LeaveCriticalSection(&gCS); // 离开临界区 cout << endl; return 0; } 不通过全局变量的方法,将子线程中的参数myNum.string_back传回主线程中,并将其赋值给主函数中的某个变量。

c# winform 多线程异常无法捕获,导致程序闪退

伪代码为: try { if (helper.TogetherBookThread != null && helper.TogetherBookThread.IsAlive) { return; } helper.TogetherBookThread = new Thread(new ThreadStart(delegate() { try { while (true) { if (helper.TicketQuery != null) { Dictionary<string, TicketOrderCSun> TicketOrderCSunDic = helper.TicketQuery.TicketOrderCSunDic; foreach (var cSun in TicketOrderCSunDic.Values) { bool flag = helper.DetermineBookOrderNewAction(cSun, helper); if (flag) { Thread.CurrentThread.Abort(); } } } Thread.Sleep(1); } } catch (ThreadAbortException) { } catch (Exception ex) { if (!(ex is ThreadAbortException)) { NetTicketCommonUtil.WriteTicketInfo("TogetherBookDetermineBookOrderThread " + ex.Message + " source:" + ex.StackTrace); } } })); helper.TogetherBookThread.IsBackground = true; helper.TogetherBookThread.Priority = ThreadPriority.Highest; helper.TogetherBookThread.Start(); //helper.TogetherBookThread.IsBackground = true; //helper.TogetherBookThread.Priority = ThreadPriority.Highest; ////helper.TogetherBookThread.ApartmentState = ApartmentState.STA; //helper.TogetherBookThread.Start(); } catch (Exception ex) { if (!(ex is ThreadAbortException)) { NetTicketCommonUtil.WriteTicketInfo("TogetherBookDetermineBookOrderThreadAAA:" + ex.Message + " source:" + ex.StackTrace); } } 每隔一毫秒就在里面判断是否有执行的任务,如果,有任务执行,并且成功,就退出线程。但是经常出现闪退。程序外面我已经加了全局捕获。但是无法捕获闪退日志。我查看windows日志,提示。 Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.NullReferenceException Stack: at NetTicket.Actions.NetTicketHelper+<>c__DisplayClassc.<TogetherBookDetermineBookOrderMainAction>b__a() at System.Threading.ThreadHelper.ThreadStart_Context(System.Object) at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at System.Threading.ThreadHelper.ThreadStart() 提示空指针异常。我里面都执行都是try catch过。不明白为什么闪退。全局都是无提示的。。找了很久不知道原因

如何将存储量很大的txt文档数据导入到hbase当中

我现在要写一个程序,将第三方导出的txt文件内容读取并放到hbase当中。 由于txt文档非常大(超过10G),我初步思路是通过单线程读取到一个线程安全的容器当中,然后再利用多线程向hbase中写入。 请问有没有什么更好的思路,谢谢!

主线程 传递给子线程一个数据

``` public class MainActivity extends AppCompatActivity implements BatteryReceiver.BatteryBRInterface { private int BatteryPower = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); IntentFilter intentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); BatteryReceiver batteryReceiver = new BatteryReceiver(); registerReceiver(batteryReceiver, intentFilter); batteryReceiver.setBatteryBRInterfaceListener((BatteryReceiver.BatteryBRInterface) this); } @Override public void getPower(int power) { if (power!=0){ BatteryPower = power; String s = Integer.toString(BatteryPower); Log.e("zzz", s); //发起连接线程 new ClientConn().start(); } } } ``` 我需要BatteryPower这个值传递出给子线程,让子线程去做数据的发送。 说明:这个数据是BroadcastReceiver中得到的,开始不知道怎么传递到MainActivity,后边仿照这个文章http://blog.csdn.net/a910626/article/details/45767079做成现在这样。

linux下,子线程如何通过pthread_kill向主线程发送信号?

``` //如下代码 #include <stdio.h> #include <signal.h> #include <pthread.h> void signal_deal(int sig); void* fun(); pthread_t pt_main; int main(int argc, char* argv[]) { pthread_t pt; //pt_main = getpid(); //怎么获取 signal(SIGUSR1,signal_deal); pthread_create(&pt,NULL,fun,NULL); sleep(10); return 0; } void signal_deal(int sig) { switch(sig) { case SIGUSR1: printf("SIGUSR1\n"); default: break; } } void* fun() { // pthread_kill(pt_main,SIGUSR1); //怎么获取main的线程号? return NULL; } ```

通过子线程传递消息,主线程中handler接受消息更新UI 带来的内存泄露问题,如何解决

请教一个问题: 伪代码: public class MainActivity{ new Thread(){ void run(){ ... handler.sendMessage(); } } private handler = new Handler(){ handMessage(){ 更新UI操作; } } } 这时提示handler会造成内存泄露,解决内存泄露需要重写Handler,实例化弱引用,这时重写的Handler为static,不能进行一些UI相关的操作,如Toast.(MainActivity,"",LENGTH_SHORT).show(); 那怎样通过handler传递的数据更新UI,同时规避内存泄露问题

qt std::thread线程如何发送一个信号调用主线程的一个函数

qt按钮下新建了一个线程 std::thread th1(&MainWindow::runTest,this,str_ModelName); th1.detach(); connect(th1,SIGNAL(robotStat(int)),this,SLOT(runTest1(int))); 想要用runtest里面的一个信号,去调用runtest1这个函数, 编译th1不能转为qobject*,请问如何连接

Android handleMessage()在OnCreate之后执行?

我的程序需要用子线程向网络获取数据并保存到MainActivity中。代码大概是这样的 ``` public class MainActivity { private Timer timer; public MyHandler handler; private String js; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); handler = new MyHandler(); timer = new Timer(); getAllInfo(); //延迟5秒等待getAllInfo(); 如果去掉该语句,数据将不能从网络获取到 try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("js = " + js); System.out.println("OnCreate OVER); } //利用计时器,两分钟联网获取一次数据 private void getAllInfo(){ timer.schedule(new java.util.TimerTask(){ @Override public void run() { System.out.println("Id:" + Thread.currentThread().getId()); String data; // 联网获取数据的代码 .... data = ..... // Message msg = Message.obtain(handler, 1 , data); handler.removeMessages(0); msg.sendToTarget(); System.out.println("SEND SUCCEED " + data); } }, 0, 120*1000); } //自定义Handler类 private class MyHandler extends Handler { public MyHandler() { } @Override public void handleMessage(Message msg) { super.handleMessage(msg); System.out.println("handleMessage START"); //更新数据的值   js = msg.obj.toString; System.out.println(js); System.out.println("handleMessage OVER"); } }; } ``` 程序运行后输出结果为: id:617 SEND SUCCEED data(这里data已经是网络上获取到的数据) js = OnCreate OVER handleMessage START data(这里data已经是网络上获取到的数据) handleMessage OVER 可以看到js = ,并没有拿到值 再往下看handleMessage()竟然在OnCreate()执行完毕之后才执行,然后js拿到了值,但是现在拿到已经没用了……OnCreate()已经结束 所以为什么handleMessage()不是接受到 msg.sendToTarget()的消息之后立即执行的呢?这样我的Activity中的js就没法获取到数据显示在界面上了 工期限制,急求大神解答!!

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

华为初面+综合面试(Java技术面)附上面试题

华为面试整体流程大致分为笔试,性格测试,面试,综合面试,回学校等结果。笔试来说,华为的难度较中等,选择题难度和网易腾讯差不多。最后的代码题,相比下来就简单很多,一共3道题目,前2题很容易就AC,题目已经记不太清楚,不过难度确实不大。最后一题最后提交的代码过了75%的样例,一直没有发现剩下的25%可能存在什么坑。 笔试部分太久远,我就不怎么回忆了。直接将面试。 面试 如果说腾讯的面试是挥金如土...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

win10暴力查看wifi密码

刚才邻居打了个电话说:喂小灰,你家wifi的密码是多少,我怎么连不上了。 我。。。 我也忘了哎,就找到了一个好办法,分享给大家: 第一种情况:已经连接上的wifi,怎么知道密码? 打开:控制面板\网络和 Internet\网络连接 然后右击wifi连接的无线网卡,选择状态 然后像下图一样: 第二种情况:前提是我不知道啊,但是我以前知道密码。 此时可以利用dos命令了 1、利用netsh wlan...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

!大部分程序员只会写3年代码

如果世界上都是这种不思进取的软件公司,那别说大部分程序员只会写 3 年代码,恐怕就没有程序员这种职业。

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

HTTP与HTTPS的区别

面试官问HTTP与HTTPS的区别,我这样回答让他竖起大拇指!

程序员毕业去大公司好还是小公司好?

虽然大公司并不是人人都能进,但我仍建议还未毕业的同学,尽力地通过校招向大公司挤,但凡挤进去,你这一生会容易很多。 大公司哪里好?没能进大公司怎么办?答案都在这里了,记得帮我点赞哦。 目录: 技术氛围 内部晋升与跳槽 啥也没学会,公司倒闭了? 不同的人脉圈,注定会有不同的结果 没能去大厂怎么办? 一、技术氛围 纵观整个程序员技术领域,哪个在行业有所名气的大牛,不是在大厂? 而且众所...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

Python爬虫,高清美图我全都要(彼岸桌面壁纸)

爬取彼岸桌面网站较为简单,用到了requests、lxml、Beautiful Soup4

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

美团面试,问了ThreadLocal原理,这个回答让我通过了

他想都想不到,ThreadLocal我烂熟于心

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

程序员是做全栈工程师好?还是专注一个领域好?

昨天,有位大一的同学私信我,说他要做全栈工程师。 我一听,这不害了孩子么,必须制止啊。 谁知,讲到最后,更确定了他做全栈程序员的梦想。 但凡做全栈工程师的,要么很惨,要么很牛! 但凡很牛的,绝不是一开始就是做全栈的! 全栈工程师听起来好听,但绝没有你想象的那么简单。 今天听我来给你唠,记得帮我点赞哦。 一、全栈工程师的职责 如果你学习编程的目的只是玩玩,那随意,想怎么学怎么学。...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

我说我懂多线程,面试官立马给我发了offer

不小心拿了几个offer,有点烦

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

立即提问
相关内容推荐