`
sangei
  • 浏览: 329029 次
  • 性别: 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# Socket多线程实例

    C#是微软随着 VS.net 新推出的一门语言。它作为一门新兴的语言,有着 C++的强健,又有 着 VB 等的 RAD 特性。...本文就向大家介绍一下 C#下实现套接字( Sockets)编程的一些基本知识,以期能 使大家对此有个大致了解。

    多线程面试题

    多线程面试题

    C# 多线程编程 详解

    This book provides an introduction to writing concurrent ... The programming language used is C#, but most of the tutorial applies equally well to other languages with thread support, such as Java.

    线程安全型双向链表的实现

    操作系统c++编程实现安全型双向链表,线程的创建,利用线程对链表进行增删改操作,并检验结果是否正确

    C#解决SQlite并发异常问题的方法(使用读写锁)

    本文实例讲述了C#解决SQlite并发异常问题的...但在C#中未提供类似功能。 作者利用读写锁(ReaderWriterLock),达到了多线程安全访问的目标。 using System; using System.Collections.Generic; using System.Text;

    用C#实现的unity线程初步

    C#线程学习如同在Java中一样,在c#中写一个多线程应用是非常简单的,本章将介绍如何在c#种开发多线程程序。在.net中线程是由System.Threading 名字空间所定义的。所以你必须包含这个名字空间。

    C#的多线程机制探索

    一.多线程的概念  Windows是一个多任务的系统,如果你使用的是windows...浏览器就是一个很好的多线程的例子,在浏览器中你可以在下载JAVA小应用程序或图象的同时滚动页面,在访问新页面时,播放动画和声音,打印文件等。

    多线程实验_1

    C#多线程实验,就AutoResetEvent,ManualResetEvent,Thread.join(),委托多线程回调。

    多线程操作实例源码

    浏览器就是一个很好的多线程的例子,在浏览器中你可以在下载JAVA小应用程序或图象的同时滚动页面,在访问新页面时,播放动画和声音,打印文件等。  多线程的好处在于可以提高CPU的利用率——任何一个程序员都不希望...

    java开发的多线程断点续传下载demo

    这个是java开发的多线程断点续传下载demo,内有详细注释,是练习android多线程断点续传下载时写的测试demo,下面的android开发的多线程断点续传下载demo是基于这个移植过去的,使用java开发的可以参考这个。

    c#多线程通信配置

    C#中类的声明与C++和Java很相似。但是,不像C++,C#结构体 C# Project 与类是不支持继承多个父类。但是,与Java相同的是,一个结构体可以实现接口(interface)。Java的关键字import已经被替换成using,它起到了...

    C#多线程监视器程序

    摘要:C#源码,系统相关,多线程,监视器 一个适合初学者参考学习的C#多线程监视器程序,创建3个线程,模拟多线程运行,并绑定TestRun方法,定义线程的绑定方法,在同步对象上获取排他锁,模拟做一些耗时的工作。

    把多个任务分派给多个线程去执行

    由三个类实现,写在了一个 Java 文件中:TaskDistributor 为任务分发器,Task 为待执行的任务,WorkThread 为自定的工作线程。代码中运用了命令模式,如若能配以监听器,用上观察者模式来控制 UI 显示就更绝妙不过了...

    新浪论坛发贴机全套源码 C#.NET HttpSocket

    新浪论坛发贴机全套源码,C#.NET编写,基于底层Socket,实现了HTTP协议下的类HttpSocket,速度快,性能稳定。基于热门的新浪论坛演示发贴机的一般写法。威力强大,请只用来学习,勿用于商业用途。 友情提示:新浪...

    WebSocket多线程视频通信

    WebSocket多线程视频通信

    打字游戏 运用多线程实现

    老师写的一个简单的打字游戏,运用了多线程开发,功能简单,适合初学者

    棋牌的胡牌算法。实现 lua 、c++ 、c# 、golang 、js 、java 、python 版本.zip

    它由Sun Microsystems(现在是Oracle Corporation)的James Gosling等人在1995年推出,被设计为一种简单、健壮、可移植、多线程、动态的语言。Java的主要特点和优势包括以下几个方面: 跨平台性(Write Once, Run ...

    多线程与多核编程

    JAVA,C#,C++语言的WINDOWS平台下进行多线程与多核编程的技术介绍

    棋牌的胡牌算法。实现 lua 、c++ 、c# 、golang 、js 、java 、python 版本。.zip

    它由Sun Microsystems(现在是Oracle Corporation)的James Gosling等人在1995年推出,被设计为一种简单、健壮、可移植、多线程、动态的语言。Java的主要特点和优势包括以下几个方面: 跨平台性(Write Once, Run ...

Global site tag (gtag.js) - Google Analytics