是否线程问题的C / C ++“系统级的程序员”显著不同,所面临的Java程序员?

我在寻找一个发展工作,看到很多上市规定,开发商必须在多线程来熟悉。 这似乎为Java工作列表,以及C ++的房源涉及“系统编程”在UNIX上。

在过去的几年里,我一直在与Java和使用它的各种同步机制。

在90年代末我做了很多C ++的工作,虽然很少线程。 在大学里,但是,我们在使用Solaris线程。

我的问题是,是否有开发商在C / C ++的脸相比,开发人员在Java中,这些问题显著的差异,以及是否有任何的技术来解决这些问题有根本的区别。 Java的显然包括一些更好的机制和收藏同步的版本,等等。

如果我想刷新或重新学习线程在UNIX上,什么是最好的方法? 我应该看哪个库? 等是否有在C ++中的线程一些大电流教程?

--------------解决方案-------------

线程的基本挑战(如同步,竞争条件,线程间的通信,资源清理),但Java使得线程更易于管理的垃圾收集,异常,先进的同步对象,先进的调试支持与反思。

使用C ++,你更可能有记忆腐败和“不可能”的竞争条件。 你会需要写很多的低级线程原语,或依赖于不属于规范语言的一部分库(比如提升)。

C ++实际上是aeasier编写复杂的线程代码比Java的,因为它有一个特点,Java的缺乏 - RAII或“资源采集是初始化”。 这个成语用于写得不好的C ++代码的所有的资源控制,但特别适合在多线程代码,其中同步的自动化管理​​是必须的。

看的pthreads和提升(与pthreads一个是随机的lijnk,但它看起来确定为起点)。

在一个较高的水平,为问题的Java / C / C ++ /是相同的。 你是如何解决这个问题的细节(调用的函数,类创建等)有所不同语言的语言。

垃圾收集,使不泄露内存更容易编程的线程,并有花哨的东西,你可以做些什么来解决这个集合的时间。

确定性析构函数使线程编程不产卵僵尸更容易,看看ACM纸在这里

这要看你选择什么样的水平,工作在。 英特尔TBB和OpenMP从一个相当高的水平处理很多常见的情况。 POSIX线程的Windows API和便携式库,比如加速线程为您带来更接近相同水平的Java原语。

的C ++ 0x线程(尤其是获取和释放内存屏障),让你去到一个更低的水平比Java提供了更多的控制和复杂性(标记变量volatile在Java中给它既有获取和释放内存屏障,但在Java中,你不能要求只是取得或刚释放屏障;其中,在C ++ 0x的也可以)。

请注意的C ++ 0x的线程模型是故意低的水平,希望人们将建立像TBB在它的上面,下一次的标准委员会开会,他们将能够找出其中的更高级别的图书馆和工具包工作不够好学习的榜样。

不管程序设计语言是用途,螺纹的特质是常见的。 因为即使整个操作系统实例的POSIX线程和WIN32线程具有相同的一组逻辑的特质,虽然API调用和本地实现WRT底层硬件/内核可能会改变,但系统程序员约线程和如何逻辑思维,使他们的工作预期与实现,这是最困难的部分。 来的编程语言时,这是即使如此。 如果你真的理解线程和线程同步的概念,你是好去和使用他们在任何你喜欢的编程语言。 由于这些编程语言提供了原生的线程/线程同步执行上面的语法糖。

分类:java的 时间:2012-01-01 人气:1
分享到:

相关文章

  • Java的多线程应用程序如何阻止对象给其他人? 2013-05-04

    Java的多线程应用程序如何阻止对象给其他人? 它是在数据库行块? 任何方式使用常见的列表该表的数据? --------------解决方案------------- 如果你使用任何东西,但最基本的RDBM的,那么他们将处理在数据层面并发更新. 所以,你没事在那里. 但是你还是要处理呼叫者企图使基于关闭陈旧数据的更新情况(可多用户系统中经常发生). 可以在任何数量的方式做到这一点: 计算一个ETAG并返回给每个呼叫者时它们从系统中检索实体的信息. 对于任何调用编辑/更新调用者返回与他们最初被赋予

  • 如何处理Java的多线程? 2014-04-06

    如何Java的决定分配一个线程或进程,核心是什么? 有什么办法来控制? 防止两个大的线程执行相同的核心? 基本上,我问的是关于采用Java如何多线程工作,或者如何在Java的控制它的更多信息. --------------解决方案------------- 你不能设置特定线程处理器的亲和力. 但是,如果你拆你的程序分为两个过程,你应该能够在操作系统级别分配这些过程来实现特定的处理器. http://www.cyberciti.biz/tips/setting-processor-affinity

  • 如何用Java实现多线程Web服务器 2014-06-12

    我的任务是用Java实现多线程Web服务器,但我不知道从哪里开始. 所有我们在讲课所看到的是TCP是如何工作的,etc.but我不知道如何实现Web服务器的想法层. 你能给我一个起点? --------------解决方案------------- 既然你不给多的信息只是一些有用资源的链接: http://java.sun.com/developer/technicalArticles/Networking/Webserver/ http://nsl.cs.sfu.ca/teaching/09/

  • 在Java中多线程程序 2012-02-16

    我要写我的第一个多线程Java应用程序. 任务基本上是创建一组产品的销售报告; 产品和输入到报告生成类是完全独立的. 我相信我们可以创建多个线程(我想控制线程的数量从目标机的基础上的CPU数量的属性文件创建). 使用这些异步生成报告. 目前,这是我在单线程程序做的. 我希望Java的大师给我设计了一些投入. 提前致谢. 报告生成类的结构 public class SalesReportGenerator { //Variables public Report prepareReport(Prod

  • Java的多线程,获得线程并行工作 2012-02-20

    假设你需要处理2个线程,一个Reader和一个Processor . Reader将读取数据流的一部分,并将它传递给Processor ,这将做一些事情. 我们的想法是不太多的数据强调读取器. 在成立,我 // Processor will pick up data from pipeIn and will place the output in pipeOut Thread p = new Thread(new Processor(pipeIn, pipeOut)); p.start(); /

  • 与UDP + Java的多线程应用程序 2012-05-07

    我有做多线程的数据报套接字在Java学习的目的问题. 我有产卵两个线程服务器级的发送和接收每一个目前拥有相同的IP"localhost"的测试目的和不同的通信端口. 另一端我有从发送端口临危连接数据,然后给出用于通过服务器的收到端口另一个分组的请求的客户机类. 我的问题是,当我同时运行它们的服务器发送的数据,并在客户端临危,但相反的方向.... 因此,没有任何人知道可能是什么问题....我怎么能在同一台机器上运行的客户端和服务器之间的互通进程,看看它是如何运行.... 下面的代码的一部

  • Java的多线程及安全出版 2012-09-26

    阅读"在实践中的Java并发"和"OSGI实践"后,我发现了一个特定的主题非常有趣; 安全出版. 以下是从JCIP: "为了安全地发布一个对象,同时参考对象和该对象的状态,必须在同一时间进行可见其他线程一个适当构造的目的可以通过安全地发布.: 从初始化静态初始化的对象引用. 存储引用它变成一个volatile字段. 存储对它的引用到最终场. 存储对它的引用这是正确用( 同步 )锁保护的字段. " 我的第一个问题:有多少Java开发人员都知道这个(

  • 在Java中多线程应用程序? 2012-09-28

    我从前没有接触过Java的线程数年,所以我有一个关于多线程一个很基本的问题. 我正在写一个Java包,将通过另一种语言(MATLAB)被调用. Matlab是能够实例化一个Java类和运行Java代码. 我希望能够: 启动多个线程 获取所有正在运行的线程的列表 停止按名称指定线程 停止所有线程 我使用的Thread在过去类,但是否有任何容易/更完整的封装吗? 任何人都可以提供一个简单的演示或点我关于这个问题的教程? --------------解决方案------------- 也许看看在Jav

  • Java的多线程应用程序更新数据库 2012-09-29

    我有一个有100个条目的数据库需要更新某个表柱项,这需要动态地更新. 基本上所有的100个条目,他们收集磁盘上的数据并更新数据库tables.In为了让他们得到它试图获取,直到在while循环锁锁的DB /硬盘信息. 一旦他们获得锁则只能更新最新DISKINFO到数据库. 我有以下代码04-0030-03基本上做上面所说的工作顺序. 我想运行它们多线程的方式,使并行工作可以做. 能否请您指导我,我是完全新的Java多线程程序. Thanksin您的帮助. while(true) { for(in

  • Java的多线程服务器逻辑,synchronized关键字,问题 2012-10-10

    我创建在Java的客户端 - 服务器应用程序,这将使一些人,利用客户端的Swing应用程序,(记事本),以连接到服务器. 一旦连接,每个客户端也将不得不要求记事本的控制,使他们能够编辑它,然后放弃控制权,将自己的成绩在所有其他客户端的垫被显示. 我有主要的问题是在多线程服务器逻辑,使用主服务器实例和多个线程,与客户端每一个处理的通信. 我不确定我所选择的结构是否会工作,或者是否会出现涉及我缺乏的主题是如何工作的理解有些问题,造成数据损坏或者其他某个线程相关的问题. 无论如何,这是服务器端的代码,

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.355 (s). 10 q(s)