-
我这个线程起的有没有问题0
//得到socket及其它信息 private static SessionBean sessionBean = SessionBean.getInstance(); /** * 报文处理及生成CSV文件流程 * @return void 无返回值 */ public static void process(){ //从上层sessionBean中得到一个socket,socket负责接收实时消息 Socket s = sessionBean.getSocket(); new Runnable() { public void run() { try { BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream())); String data = br.readLine(); //得到所需要的数据 String needData = getNeedMessage(data); //处理所需要的数据 dataHandle(needData); //生成CSV文件 writeCsvFile(); } catch (IOException e) { logger.error("报文信息读取失败"); } } }; }
问题补充:用时就new 本类().process2013年7月24日 11:09
4个答案 按时间排序 按投票排序
-
采纳的答案
不太清楚你的业务场景,就只能从代码上面说了
1.你并没有new Thread,只是构造了一个Runnable的实例,等于你的这个Runnable并没有被执行
2.对于socket,你只是获取操作了,并没有关闭,这里也是一个隐患,关闭的时候最好是finally中关闭
3.getSocket这个方法并没有看到具体的代码,是否需要同步
4.process这个方法本身就是static的,为什么你还要new呢2013年7月24日 11:37
-
有两个问题
1. process()是static的 还需要new 本类().process吗?
2. 你所谓的线程都没调用start()方法 怎么能运行?2013年7月24日 13:18
相关推荐
启动挂起的线程时,要确保没有未解决的同步问题,否则可能会引发竞态条件或其他并发问题。 5. **多次挂起与启动** 提到的代码支持线程的多次挂起和启动,这意味着它可能包含了一个机制来跟踪线程的状态,并在适当...
在这个例子中,我们可以看到四个线程都在执行相同的操作,但是它们之间没有同步和通信。这种情况下,可能会出现数据不一致的问题。因此,在实际应用中,需要使用合适的同步机制来避免这种情况。 多线程编程是指在一...
销毁前,应确保线程没有访问共享资源,避免数据不一致或内存泄漏。 6. **线程暂停与继续的应用场景**: - 在处理大量I/O操作时,暂停线程可以避免阻塞主线程,提高程序响应性。 - 在进行耗时计算时,暂停和恢复...
这个过程通常涉及到线程同步和异步的概念。本文将深入探讨线程异步工作以及如何在C++中实现一个线程在结束时异步通知另一个线程,而无需等待。 线程异步工作是指线程之间不直接依赖彼此的执行顺序,它们可以独立地...
在这个场景中,我们将重点讨论如何利用`NtQuerySystemInformation`来判断线程是否被挂起以及理解线程的状态。 `NtQuerySystemInformation`函数是Windows NT内核提供的一种低级别接口,允许用户模式的应用程序获取...
这个问题是计算机科学中并发编程的一个基础模型,它展示了如何有效地在多个线程之间共享资源。 生产者-消费者问题是这样的:一个或多个“生产者”线程生成数据,而一个或多个“消费者”线程则消费这些数据。关键...
通过分析和学习这段代码,我们可以更深入地理解多线程在文件复制中的应用,以及如何有效地管理和同步多个线程。 总之,一个线程写,一个线程读的copy工具是多线程编程在文件操作中的一种实用应用,它能够提高文件...
2. notify():随机唤醒一个在该对象监视器上等待的线程,如果没有任何线程在等待,那么这个方法不做任何事情。 3. notifyAll():唤醒所有在该对象监视器上等待的线程,所有被唤醒的线程都会再次竞争锁。 一个典型...
`MuiltiThreading`这个文件可能包含了关于多线程编程的实例代码,它可以帮助你更好地理解如何在实际项目中创建和管理线程,以及如何处理线程安全问题。通过分析和运行这些示例,你可以深入学习到如何在多线程环境中...
这意味着程序仍然是单线程执行的,没有体现出多线程的特性。 #### 四、Runnable接口与Callable接口的区别 1. **Runnable接口:** - `Runnable`接口定义了一个无返回值的`run()`方法,主要用于执行特定的任务,但...
3. **竞态条件**:当两个或多个线程同时访问并修改共享资源时,如果没有适当的同步措施,可能导致数据的不一致性,这就是竞态条件。 4. **互斥**:互斥是一种确保任何时候只有一个线程能访问共享资源的技术。在C#中...
本篇文章将深入探讨如何利用VB实现多线程,解决VB没有内置多线程机制的问题。 首先,要理解什么是多线程。多线程是程序执行的一种方式,它允许程序同时执行多个独立的任务。在多核处理器环境下,多线程可以充分利用...
在每个线程中,都应该有适当的错误处理代码,以便在出现问题时能够优雅地关闭连接并通知用户。 在实际编程中,文件`modeling`可能包含了关于如何建模和实现这种多线程TCP通信的详细代码或者示例。这可能包括了`...
1. **共享资源的访问冲突**:当多个线程尝试同时访问同一份资源(如全局变量、共享对象等)时,如果没有适当的同步措施,可能会导致数据不一致或者程序崩溃等问题。 2. **线程中断处理不当**:在某些情况下,如果...
调用 wait()/notify()/notifyAll() 中的任何一个方法时,如果当前线程没有获得该对象的锁,那么就会抛出 IllegalMonitorStateException 异常。这是因为 wait()/notify()/notifyAll() 方法需要当前线程拥有对象的锁,...
后续的请求,Web容器通常不会重新创建Servlet实例,而是复用已存在的实例,这就意味着多个线程可能同时访问同一个Servlet实例。线程池是Web容器常用的技术,用于高效地管理线程,提高服务响应速度。 Servlet的线程...
本文将深入探讨“C#内存释放-线程控制-线程启动-线程暂停”这一主题,结合提供的WFormsThread文件,我们可以假设这是一个关于Windows Forms应用程序中线程管理的实例。 首先,让我们关注线程控制。在C#中,我们通常...
当多个线程尝试同时访问和修改同一个文件时,如果没有适当的同步机制,结果可能会是数据不一致或错误。为了解决这个问题,C++提供了如互斥量(mutex)、条件变量(condition_variable)、信号量(semaphore)等同步...
同理,在多线程环境中,如果一个对象在没有完成操作的情况下被其他线程访问,就可能产生错误的结果。 线程安全性的定义并不直观,正式定义往往复杂且循环,需要确保类或函数的行为符合规格说明,即在各种可能的线程...