`
fjlyxx
  • 浏览: 23055 次
  • 性别: Icon_minigender_1
  • 来自: 福建
文章分类
社区版块
存档分类
最新评论

浅谈线程

阅读更多
刚看了一个  java中线程到底什么时候启动 的帖子小弟不才谈谈个人对java线程的几点看法。

线程是一个很有意思的东西。
在线程方面我大概经历了这么几个阶段。

第一个阶段  业务驱动线程,就是有业务马上开辟线程然后去处理业务,这中处理方式线程是不受控制的,创建了以后线程怎么走我也不知道。且让它自生自灭吧。不行了就内存溢出。

第二个阶段  创建了一个线程池,线程的个数是受控制的,终于不会内存溢出了。但是在现场非安全结束或者没有线程的情况下处理起来相当麻烦。基本上这时候去处理也是多余的。

第三个阶段  程序一开始就创建线程,让线程去监听队列,业务上队列,线程去抓业务然后去跑,处理完了继续回来监听。当然这里并非所有的线程都在监听队列。具体的实现可以参考LF线程模型。 但是LF线程模型如果直接拿来使用也是有点问题的。在这里我推荐使用JAVA的回调,保证线程的绝对安全。

对于多线程的应用我想说以下几个注意的地方:

第一  并非越多线程并发越好,你要考虑你的数据库连接是否够用,计算机资源使用够用等。如果你创建100个线程 每个线程进行一次数据库访问,那么你能同时提够100个连接吗?

第二  对于第三种模型建议在业务逻辑的实现中加上克隆,不要出现多个线程引用同一个对象的情况。要不然你会发现一个任务可能跑了很多次,而有的任务一次也没有跑。

第三  尽量不要再多线程中出现一些不可预测的逻辑,如果不能避免建议完善你的异常处理。业务逻辑的回调接口一定要能抛出业务不能正常结束的异常,要不然你这条线程很可能就会因为异常而永远挂起。这是很可怕的。

第四  对于有队列的线程(第三个阶段) 你要注意队列中是否才相同的任务(同一任务发生两次,这个对于定时任务是很经常见的),如果有那么会造成浪费。

第五  共享资源的控制,我虽然不推荐在多线程中出现共享资源,但逼不得已的时候切记要保护好你的共享资源。

最后说一下,我认为好的线程是存活在沙盒中的,绝对安全的,不要业务去驱动线程,应该是线程驱动业务。
就这么多了。
分享到:
评论

相关推荐

    浅谈线程课程设计论文(操作系统).pdf

    【线程的概念与作用】 线程是操作系统中执行的基本单元,是进程的一部分,它比进程更细粒度,是CPU调度和分派的基本单位。线程自身只持有少量资源,如程序计数器、寄存器和栈,但它可以和其他线程共享进程的所有...

    浅谈线程的几种可用状态

    浅谈线程的几种可用状态 线程是操作系统中的一种基本概念,它可以帮助我们更好地管理系统资源和提高系统的效率。线程有多种状态,这些状态之间可以相互转换,了解这些状态对于我们编写高效的多线程程序非常重要。 ...

    浅谈线程通信wait,notify作用

    浅谈线程通信wait、notify作用 在多线程编程中,线程之间的通信非常重要。wait()和notify()方法是Java语言中最基本的线程通信机制。它们可以使得线程之间相互发送信号,从而实现线程之间的协作。 wait()方法的作用...

    浅谈android线程模型

    ### 浅谈Android线程模型:深入理解与实践 #### 引言 随着智能手机的普及和技术的不断进步,Google的Android操作系统成为了移动设备领域的重要力量。Android不仅为用户提供了丰富的功能,也为开发者提供了广阔的...

    浅谈C#跨线程调用窗体控件(比如TextBox)引发的线程安全问题

    浅谈C#跨线程调用窗体控件引发的线程安全问题 C#跨线程调用窗体控件时可能会引发线程安全问题,例如当多个线程操作同一个控件时,该控件可能会进入不一致的状态,出现争用情况和死锁等问题。因此,确保以线程安全...

    浅谈多线程_让程序更高效的运行

    【多线程】是计算机编程中的一个重要概念,它允许程序在同一时间内执行多个任务,从而提高了程序的执行效率。在Java中,多线程是通过创建并运行多个线程来实现的,每个线程代表着进程中的一条独立控制流。Java线程是...

    浅谈Java多线程编程.pdf

    "浅谈Java多线程编程" 从标题和描述可以看出,这篇文章的主题是讨论Java多线程编程的相关知识点。 多线程编程的概念 Java语言的一个重要特点是支持多线程机制,这使得Java程序可以支持多程序并发执行,从而提高...

    浅谈java多线程编程

    【Java多线程编程】是Java开发中不可或缺的一部分,它允许程序同时执行多个任务,从而提高效率和响应速度。本文将深入探讨Java多线程的优缺点、创建方式以及线程安全与同步机制。 **一、多线程的优缺点** 1. **...

    浅谈Java的多线程机制.pdf

    "浅谈Java的多线程机制" 本文主要讨论了Java语言中的多线程机制,旨在提高应用程序的性能和实时控制性能。 Java提供了多线程编程模型,使得在一个程序中可以同时执行多个小任务,从而最大限度地利用CPU资源。 首先...

    浅谈JAVA语言的多线程技术.pdf

    浅谈JAVA语言的多线程技术 一、多线程技术的概述 JAVA语言作为一种面向对象的编程语言,它具有平台独立性、安全性、网络化、多线程、面向对象等特点。其线程机制在实践中广泛应用而受到编程者的极大关心。本文就...

    浅谈Linux下的多线程编程.pdf

    【Linux下的多线程编程】 在Linux操作系统中,多线程编程是一种常见且重要的编程模型,它允许多个执行流(线程)在一个进程中同时运行,以提高程序的并发性和资源利用率。多线程在系统开发中扮演着关键角色,特别是...

    浅谈JAVA中多线程的实现.zip

    在Java编程语言中,多线程是程序设计中的一个重要概念,尤其在开发高效能、响应迅速的应用时。本文将深入探讨Java中多线程的实现,帮助开发者理解如何利用这一特性来优化应用程序。 多线程是指在一个程序中同时运行...

    浅谈.Net下的多线程和并行计算(全集)

    在.NET框架中,多线程和并行计算是提高应用程序性能和响应能力的关键技术。本文将深入探讨这两个概念,以及如何在.NET环境下有效地利用它们。 首先,多线程是指一个程序中同时执行多个独立的线程,每个线程都有自己...

    浅谈linux多线程编程和windows多线程编程的异同.doc

    在Linux中,多线程编程主要依赖于POSIX线程库(通常称为pthreads),其API包括`pthread_create()`用于创建线程,`pthread_join()`用于等待线程结束,以及`pthread_mutex_lock()`和`pthread_mutex_unlock()`用于互斥...

    浅谈Java线程的生命周期——北大青鸟佳音旗舰.docx

    在Java编程中,线程是程序执行的最小单元,它们允许并发处理多个任务,提高程序的效率。本文将深入探讨Java线程的生命周期,包括创建、启动、结束以及线程的协作和调度。 首先,创建Java线程有两种主要方式:直接...

Global site tag (gtag.js) - Google Analytics