`
sangei
  • 浏览: 334162 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

多线程在C#和java中的实现

阅读更多

在java中实现多线程有两种方法

1)继承Thread类

2)实现Runnable接口

..............................

看代码

 

  1. class MultiThread  
  2. {  
  3.     public static void main(String[] args)  
  4.     {  
  5.         Thread mte=new Thread(new MyThreadEx());  
  6.         mte.start();  
  7.           
  8.         Thread mti=new Thread(new MyThreadIm());  
  9.         mti.start();  
  10.           
  11.         System.out.println("Main Thread name is:"+Thread.currentThread().getName());  
  12.     }     
  13. }  
  14. //继承Thread类  
  15. class MyThreadEx extends Thread  
  16. {  
  17.     public MyThreadEx()  
  18.     {  
  19.     }  
  20.     public void run()  
  21.     {  
  22.         System.out.println("extends Thread");  
  23.     }     
  24. }  
  25. //实现Runnable接口  
  26. class MyThreadIm implements Runnable  
  27. {  
  28.     public MyThreadIm()  
  29.     {  
  30.     }  
  31.     public void run()  
  32.     {  
  33.         System.out.println("implements Runnable");  
  34.     }     
  35. }  

 

 

-----------------------------------------------------------------------------------------------------------------

而在C#中,系统已经为我们写好委托,方法体可以由我们自己来自由地实现,

而C#里线程又分两种,1)带参数的和2)不带参数的

事实上,C#细分的话,带参数的和不带参数的都分别一个重载方法,所以加起来共四个

看MSDN:

名称 说明
Thread (ParameterizedThreadStart) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托。
Thread (ThreadStart) 初始化 Thread 类的新实例。

由 .NET Compact Framework 支持。

Thread (ParameterizedThreadStart, Int32) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托,并指定线程的最大堆栈大小。
Thread (ThreadStart, Int32) 初始化 Thread 类的新实例,指定线程的最大堆栈大小。

由 .NET Compact Framework 支持。

 

..............................

再看代码实现

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4. using System.Threading;  
  5.   
  6. namespace ThreadTest  
  7. {  
  8.     class Program  
  9.     {  
  10.         static void Main(string[] args)  
  11.         {  
  12.             //不带参数的线程实现  
  13.             Thread thdNoparam = new Thread(new ThreadStart(NoParamsMethod));  
  14.             thdNoparam.Start();  
  15.   
  16.             //带参数的线程实现  
  17.             Thread thdParam = new Thread(new ParameterizedThreadStart(ParamsMethod));  
  18.             thdParam.Start("Thread implement with params !");  
  19.   
  20.         }  
  21.         //方法的实现  
  22.         static void NoParamsMethod()  
  23.         {  
  24.             Console.WriteLine("Thread implement with no params !");  
  25.         }  
  26.         //方法的实现  
  27.         static void ParamsMethod(object obj)  
  28.         {  
  29.             //do something with obj  
  30.             Console.WriteLine(obj.ToString());   
  31.         }  
  32.     }  
  33. }  

 

-----------------------------------------------------------------------------------------------------------------

各有各的特点 

分享到:
评论

相关推荐

    Java 与C# 的多线程能力

    Java 与C# 是现扣今网络开发的两大主要平台,而多线程编程则是进行并行处理计算中的基础,本文主要阐述了在Java 与C#开发平台下如何进行多线程编程的方法及注意事项,并且比较和分析两种开发平台下进行多线程编程的...

    C# To JAVA Converter v17.10.6(最新破解版)

    10. 调试与日志:C#的调试特性与Java的Junit测试和日志框架(如Log4j)在实现上有差异,转换后需调整测试和日志方案。 这款C# To Java Converter工具的出现,不仅简化了开发者的工作,也促进了两种语言之间的技术...

    C#Winform异步多线程和线程池集成的用法

    本文将深入探讨如何在Winform应用中使用异步多线程和线程池。 一、线程基础 线程是操作系统分配CPU时间的基本单元,每个进程至少包含一个线程。在C#中,可以使用`System.Threading.Thread`类来创建和管理线程。通过...

    C#与JAVA的比较

    7. **多线程支持**:C#和JAVA都内置了对多线程的支持,这为开发高并发应用程序提供了强大的工具。 8. **无全局变量和函数**:为了提高代码质量和避免潜在的问题,C#和JAVA不允许全局变量和函数的存在。所有的变量和...

    C# socket多线程编程

    【C# Socket 多线程编程】在C#中,Socket编程是实现网络通信的关键,特别是在多线程环境中,能够高效地处理并发连接和数据传输。Socket是TCP/IP协议的基础,它代表了通信的两端点,允许不同主机或同一主机内的进程...

    多线程面试题

    在Java编程领域,多线程是面试中常见且重要的知识点,尤其对于系统设计和高并发处理的岗位至关重要。本文将围绕“多线程面试题”这一主题,深入探讨相关概念、技术及其应用。 1. **线程的概念**:线程是程序执行的...

    jni4net C# java 相互调用

    此外,它还支持多线程环境,可以在多个线程间安全地进行跨语言调用。 在提供的压缩包文件中,有以下几个关键组成部分: 1. `lib`目录:包含了jni4net运行所需的库文件,包括.NET的DLL文件和Java的JAR文件。这些库...

    JAVA通过JNI调用C#dll的整个项目工程

    - 跨语言调用可能涉及线程安全问题,需要确保在多线程环境下正确同步。 - 针对不同的操作系统,可能需要调整DLL的加载和调用方式,因为Windows使用`LoadLibrary`,而在Unix-like系统中通常使用`dlopen`。 本项目...

    多线程操作串口示例(带modbus

    在Java中,可以使用javax.comm库或者第三方库如RXTX来实现串口通信。 然后,涉及到的Modbus协议是一种广泛应用的工业通信协议,主要用于PLC(可编程逻辑控制器)和其它设备之间的通信。它支持多种通信介质,包括...

    c#代码转java代码工具

    这样的工具简化了代码转换的过程,但需要注意的是,自动转换可能无法处理所有复杂情况,如特定的C#特性或库调用,这些在Java中可能没有直接对应的部分。 标签"**c#转java**"强调了转换的方向,即从C#到Java。转换...

    C#和 Java比较

    在多线程处理上,C#有`Task`和`Thread`等并发模型,而Java有`Thread`类和`ExecutorService`,两者都提供了同步和异步编程的能力。 总的来说,C#和Java都是强大的编程工具,它们在很多方面有相似之处,但在具体实现...

    C#和JAVA的相同点和不同点_八个文档详细比较

    5. **多线程**:Java 提供了Thread类和ExecutorService,C# 则有System.Threading命名空间,包含Task和ThreadPool。两者都支持异步编程,但C#的async/await更简洁易用。 6. **异常处理**:Java和C#都采用try-catch-...

    java代码转c#

    4. **多线程**:Java有`Thread`类和`Runnable`接口,C#则有`Thread`类和`Task`类,以及`async/await`关键字,后者提供了更简洁的异步编程模型。 5. **集合框架**:Java的集合框架包括List、Set和Map,C#也有相似的`...

    c# 调用java类库

    1. 创建Java代理类:首先,你需要在Java环境中创建一个代理类,该类将暴露BioJava中的ABI文件读取方法。这些方法将被C#代码调用。 2. 编译为DLL:将Java代理类编译为.NET可理解的DLL文件。这可以通过JNBridge或其他...

    多线程全面遍历磁盘文件

    7. **性能监控和调优**:在实际应用中,需要对多线程遍历的性能进行监控,包括CPU使用率、内存占用、磁盘I/O等指标。通过这些数据,我们可以调整线程池的大小、工作区域的划分策略,以达到最佳性能。 最后,提到的...

    大数据量多线程执行分页查询

    在实际应用中,实现大数据量多线程分页查询的过程可能包括以下几个步骤: 1. **设计数据库表结构**:根据需求创建合适的表结构,合理利用索引以优化查询性能。 2. **实现分页查询**:使用SQL的`LIMIT`(MySQL)或`...

    Java调用C#DLL

    本资源聚焦于一个具体的问题:如何在Java中调用C#编写的DLL(动态链接库)文件。下面将详细讲解这个过程,以及相关的知识点。 首先,我们需要了解DLL的本质。DLL是微软Windows操作系统中的一个重要组成部分,它封装...

    C#与java比较

    在 C# 和 Java 中,一旦对象不再被引用,垃圾回收器会自动释放这些对象所占用的内存空间。 #### 线程同步 C# 和 Java 都内置了线程同步机制,这是实现并发控制的关键技术之一。这两种语言都提供了原生支持,用于...

Global site tag (gtag.js) - Google Analytics