关于多线程小结

在查找资料和学习的过程中留下的一点总结,敬请拍砖指教。

程序、进程、线程的区别?

进程是一个程序的进行时状态,一个程序运行在不同的数据集上可以形成多个进程。线程是进程的一个运行单元,一个进程中可以有多个线程。

volatile 和 synchronized 区别

volatile 是变量修饰符,使线程不拷贝主内存中的变量而是直接操作主内存中的变量,从而保持变量的一致性,但是volatile在变量的值依赖于它的前一个值时会失效。

synchornized 修饰方法或代码块,使得整个代码块获得监视器,加锁,消除线程中的变量,直接从主内存中拷贝过来变量,执行,安全的同步到主内存,释放锁。消耗更多的资源。

线程与线程之间怎样通信?进程与进程之中怎样通信?

线程与线程之间:

a). 使用全局变量

b).使用消息实现通信

c).使用事件CEvent类实现线程间通信

进程与进程间通信(IPC):

管道、有名管道、共享内存、信号量、消息队列、套接字等

详见:http://www.jianshu.com/p/9218692cb209

时间: 2024-08-24 00:03:30

关于多线程小结的相关文章

黑马程序员___多线程小结

----------- android培训.java培训.java学习型技术博客.期待与您交流! --------- 进程和线程 进程是正在进行中的程序,指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以有多个线程. Java程序的进程里有几个线程:主线程, 垃圾回收线程(后台线程) 线程是指进程中的一个执行任务(控制单元),一个进程中可以运行多个线程,多个线程可共享数据.多线程:在同一个进程中同时运行的多个任务;一个进程至少有一个线程,为了提高效率,可以在一个进程中

【Java基础】Java多线程小结

在说多线程之前,首先要清楚为啥要提出多线程,这就要明白线程和进程间的区别了. 线程和进程间的区别 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 一个线程可以创建和撤销另一个线程,同一个进程中

多线程小结

一.多线程的创建和启动 1.继承至Thread类,重写run方法 public class ThreadDemo extends Thread { public void run(){ for(int i=0;i<10;i++){ System.out.println(Thread.currentThread().getName()+"..."+i); } } } public class ThreadMain { public static void main(String[]

java多线程小结,及解决应用挂死的问题

这两天为了定位JBOSS老是挂死的问题,学习了一下JAVA多线程方面的知识,在此总结一下 1.在Java程序中,JVM负责线程的调度.线程调度是指按照特定的机制为多个线程分配CPU的使用权. 调度的模式有两种:分时调度和抢占式调度.分时调度是所有线程轮流获得CPU使用权,并平均分配每个线程占用CPU的时间:抢占式调度是根据线程的优先级别来获取CPU的使用权.JVM的线程调度模式采用了抢占式模式. 2.Thread类实际上也是实现了Runnable接口的类. 在启动的多线程的时候,需要先通过Thr

【转】C#绝对新手之C#中的多线程小结

大概有4种方法: Dispatcher.异步委托.手动多线程.BackgroundWorker,另外还有一个DispatcherTimer,是定时器. 其中Dispatcher与DispatcherTimer相同,是利用在主线程进行任务优先级的排列来模拟多线程,因此其中实质是单线程 ,所以大负荷的运算不宜用它们.在异步调用的时候,使用Dispatcher.Invoke(addItem, image); BackgroundWorker会到线程池去抓一个线程作为工作线程,完成工作后切换回 UI 线

Java多线程小结

JAVA实现多线程的方式有两种,继承Thread,实现Runnable, 但在JDK1.5之后又有一种新的方式:实现Callable<V>接口 package Test2016.demo; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.CompletionService; import java.util.c

Android 多线程小结

1.启动欢迎界面 1 @Override 2 protected void onCreate(Bundle savedInstanceState) { 3 // TODO Auto-generated method stub 4 super.onCreate(savedInstanceState); 5 setContentView(R.layout.welcome); 6 new Handler().postDelayed(r, 1000);// 1秒后关闭,并跳转到主页面 7 } 8 9 R

多线程小结(1)

原文出处 定义就不多说了,直接上代码 1 /// <summary> 2 /// 单线程应用 3 /// </summary> 4 class Program 5 { 6 static void Main(string[] args) 7 { 8 Console.WriteLine("进入主线程"); 9 User u = new User("小刚"); 10 u.Getshow(); 11 Console.WriteLine("主

ios 多线程小结----- GCD篇

//3 GCD(充分利用设备的多盒)-------------屏蔽了线程,只能看见任务 队列步骤两步,定制任务,将任务添加到队列.GCD将添加的任务,放到线程中去执行,自动执行,自动释放原则:先进先出,先添加的任务先执行,有别于栈的先进后出,先添加的任务后执行 -------GCD--- GCD有两个用来执行任务的函数:同步函数,异步函数同步:按顺序执行任务,同一条线程执行(不开线程)异步:同时执行任务(开启新线程) 同步,异步,并发,串行同步:当前线程执行,不具备开启新线程的能力异步:在新线程