在java中实现多线程有两种方法
1)继承Thread类
2)实现Runnable接口
..............................
看代码
- class MultiThread
- {
- public static void main(String[] args)
- {
- Thread mte=new Thread(new MyThreadEx());
- mte.start();
- Thread mti=new Thread(new MyThreadIm());
- mti.start();
- System.out.println("Main Thread name is:"+Thread.currentThread().getName());
- }
- }
- //继承Thread类
- class MyThreadEx extends Thread
- {
- public MyThreadEx()
- {
- }
- public void run()
- {
- System.out.println("extends Thread");
- }
- }
- //实现Runnable接口
- class MyThreadIm implements Runnable
- {
- public MyThreadIm()
- {
- }
- public void run()
- {
- System.out.println("implements Runnable");
- }
- }
-----------------------------------------------------------------------------------------------------------------
而在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 支持。 |
..............................
再看代码实现
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Threading;
- namespace ThreadTest
- {
- class Program
- {
- static void Main(string[] args)
- {
- //不带参数的线程实现
- Thread thdNoparam = new Thread(new ThreadStart(NoParamsMethod));
- thdNoparam.Start();
- //带参数的线程实现
- Thread thdParam = new Thread(new ParameterizedThreadStart(ParamsMethod));
- thdParam.Start("Thread implement with params !");
- }
- //方法的实现
- static void NoParamsMethod()
- {
- Console.WriteLine("Thread implement with no params !");
- }
- //方法的实现
- static void ParamsMethod(object obj)
- {
- //do something with obj
- Console.WriteLine(obj.ToString());
- }
- }
- }
-----------------------------------------------------------------------------------------------------------------
各有各的特点
相关推荐
Java 与C# 是现扣今网络开发的两大主要平台,而多线程编程则是进行并行处理计算中的基础,本文主要阐述了在Java 与C#开发平台下如何进行多线程编程的方法及注意事项,并且比较和分析两种开发平台下进行多线程编程的...
10. 调试与日志:C#的调试特性与Java的Junit测试和日志框架(如Log4j)在实现上有差异,转换后需调整测试和日志方案。 这款C# To Java Converter工具的出现,不仅简化了开发者的工作,也促进了两种语言之间的技术...
本文将深入探讨如何在Winform应用中使用异步多线程和线程池。 一、线程基础 线程是操作系统分配CPU时间的基本单元,每个进程至少包含一个线程。在C#中,可以使用`System.Threading.Thread`类来创建和管理线程。通过...
7. 多线程:C#的线程与Java的线程在API上有所不同,转换时需要关注线程同步和并发控制的实现。 8. 静态类和方法:C#中的静态类在Java中没有直接对应的概念,可能需要转换为普通类,所有成员都是静态的。 9. 注解:...
7. **多线程支持**:C#和JAVA都内置了对多线程的支持,这为开发高并发应用程序提供了强大的工具。 8. **无全局变量和函数**:为了提高代码质量和避免潜在的问题,C#和JAVA不允许全局变量和函数的存在。所有的变量和...
【C# Socket 多线程编程】在C#中,Socket编程是实现网络通信的关键,特别是在多线程环境中,能够高效地处理并发连接和数据传输。Socket是TCP/IP协议的基础,它代表了通信的两端点,允许不同主机或同一主机内的进程...
在Java编程领域,多线程是面试中常见且重要的知识点,尤其对于系统设计和高并发处理的岗位至关重要。本文将围绕“多线程面试题”这一主题,深入探讨相关概念、技术及其应用。 1. **线程的概念**:线程是程序执行的...
此外,它还支持多线程环境,可以在多个线程间安全地进行跨语言调用。 在提供的压缩包文件中,有以下几个关键组成部分: 1. `lib`目录:包含了jni4net运行所需的库文件,包括.NET的DLL文件和Java的JAR文件。这些库...
- 跨语言调用可能涉及线程安全问题,需要确保在多线程环境下正确同步。 - 针对不同的操作系统,可能需要调整DLL的加载和调用方式,因为Windows使用`LoadLibrary`,而在Unix-like系统中通常使用`dlopen`。 本项目...
这样的工具简化了代码转换的过程,但需要注意的是,自动转换可能无法处理所有复杂情况,如特定的C#特性或库调用,这些在Java中可能没有直接对应的部分。 标签"**c#转java**"强调了转换的方向,即从C#到Java。转换...
在Java中,可以使用javax.comm库或者第三方库如RXTX来实现串口通信。 然后,涉及到的Modbus协议是一种广泛应用的工业通信协议,主要用于PLC(可编程逻辑控制器)和其它设备之间的通信。它支持多种通信介质,包括...
在多线程处理上,C#有`Task`和`Thread`等并发模型,而Java有`Thread`类和`ExecutorService`,两者都提供了同步和异步编程的能力。 总的来说,C#和Java都是强大的编程工具,它们在很多方面有相似之处,但在具体实现...
7. **性能监控和调优**:在实际应用中,需要对多线程遍历的性能进行监控,包括CPU使用率、内存占用、磁盘I/O等指标。通过这些数据,我们可以调整线程池的大小、工作区域的划分策略,以达到最佳性能。 最后,提到的...
5. **多线程**:Java 提供了Thread类和ExecutorService,C# 则有System.Threading命名空间,包含Task和ThreadPool。两者都支持异步编程,但C#的async/await更简洁易用。 6. **异常处理**:Java和C#都采用try-catch-...
4. **多线程**:Java有`Thread`类和`Runnable`接口,C#则有`Thread`类和`Task`类,以及`async/await`关键字,后者提供了更简洁的异步编程模型。 5. **集合框架**:Java的集合框架包括List、Set和Map,C#也有相似的`...
1. 创建Java代理类:首先,你需要在Java环境中创建一个代理类,该类将暴露BioJava中的ABI文件读取方法。这些方法将被C#代码调用。 2. 编译为DLL:将Java代理类编译为.NET可理解的DLL文件。这可以通过JNBridge或其他...
在 C# 和 Java 中,一旦对象不再被引用,垃圾回收器会自动释放这些对象所占用的内存空间。 #### 线程同步 C# 和 Java 都内置了线程同步机制,这是实现并发控制的关键技术之一。这两种语言都提供了原生支持,用于...
在C#编程中,多线程技术是一种核心能力,特别是在处理网络编程和并发操作时。本文将深入探讨C#中的多线程编程,特别是如何利用Socket进行网络通信。C#语言是由微软公司推出的,旨在结合C++的强健性和VB的快速应用...