private static void EvalPerf(Synch synch, int numThreads) { ManualResetEvent startEvent = new ManualResetEvent(false); int endTime = 0; int totalOps = 0; Thread[] threads = new Thread[numThreads]; for (int n = 0; n < numThreads; ++n) { threads[n] = new Thread(() => { int numOps = 0; startEvent.WaitOne(); do { for (int i = 0; i < LOCKS_PER_LOOP; ++i) { synch.Synchronize(() => { // Busy variant: // Thread.Yield(); }); } numOps += LOCKS_PER_LOOP; } while (Environment.TickCount < endTime); Interlocked.Add(ref totalOps, numOps); }); threads[n].Start(); } endTime = Environment.TickCount + MS_PER_TEST; startEvent.Set(); foreach (Thread t in threads) { t.Join(); } Console.WriteLine("[{0}] {1}", numThreads, totalOps); }
/// <summary> /// 删除 /// </summary> /// <returns></returns> public override object Delete() { if (Synch.Equals("UFOper")) { sqlOper = new UFOper(oraLinkName, ufConnStr, ufTableName, ufPriKey, oracleTableName, oraclePriKey, l, lst); if (bNoCase) { sqlOper.Delete(); //清除旧记录 } if (bSaveOper) { return(this.Insert()); } else { return(1); } } else if (Synch.Equals("LinkOper")) { sqlOper = new LinkOper(oraLinkName, ufConnStr, ufTableName, ufPriKey, oracleTableName, oraclePriKey, l, lst); return(sqlOper.Update()); } else { sqlOper = new OracleOper(oraConnStr, oracleTableName, oraclePriKey, l, lst); return(sqlOper.Update()); } }
override public void Run() { try { long pos = 0, nextpos; while (!zap) { lock (mutex) { nextpos = MoleculeStream.FindNextPosition(istr, pos); } if (nextpos < 0) { break; } filepos.Add(pos); pos = nextpos; // inform the main window that is has work to do! //UPGRADE_ISSUE: Method 'java.awt.EventQueue.invokeLater' was not converted. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1000_javaawtEventQueue'" //EventQueue.invokeLater(new AnonymousClassRunnable(this)); Synch synchDelegate = new Synch(wnd.Synchronize); synchDelegate(filepos.Count); } } catch (System.IO.IOException e) { //UPGRADE_TODO: The equivalent in .NET for method 'java.lang.Throwable.toString' may return a different value. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1043'" SupportClass.OptionPaneSupport.ShowMessageDialog(null, e.ToString(), "Catalog Load Failed", (int)System.Windows.Forms.MessageBoxIcon.Error); SupportClass.WriteStackTrace(e, Console.Error); } }
public static void Main() { Synch[] synchs = new Synch[] { new MutexSynch(), new MonitorSynch(), new BasicSpinLockSynch() }; foreach (Synch synch in synchs) { EvalPerf(synch); } }
private static void EvalPerf(Synch synch) { Console.WriteLine("################"); Console.WriteLine("# {0}", synch.GetType().Name); Console.WriteLine(); for (int nt = 1; nt <= Environment.ProcessorCount * 2; ++nt) { EvalPerf(synch, nt); } Console.WriteLine(); }
public static void synch1_values_test() //****************************************************************************80 // // Purpose: // // SYNCH1_VALUES_TEST tests SYNCH1_VALUES. // // Licensing: // // This code is distributed under the GNU LGPL license. // // Modified: // // 08 February 2007 // // Author: // // John Burkardt // { double fx = 0; double x = 0; Console.WriteLine(""); Console.WriteLine("SYNCH1_VALUES_TEST:"); Console.WriteLine(" SYNCH1_VALUES stores values of "); Console.WriteLine(" the Synchrotron function of order 1."); Console.WriteLine(""); Console.WriteLine(" X FX"); Console.WriteLine(""); int n_data = 0; for (;;) { Synch.synch1_values(ref n_data, ref x, ref fx); if (n_data == 0) { break; } Console.WriteLine(" " + x.ToString("0.################").PadLeft(24) + " " + fx.ToString("0.################").PadLeft(24) + ""); } }
public override StringBuilder CreateDeleteString() { if (Synch.Equals("UFOper")) { string sql = " DELETE FROM " + oracleTableName + " WHERE " + oracleTableName + ".id in( select id from MES_CQ_bom_bom with(nolock) where bomid ='" + bomId + "') "; return(new StringBuilder(sql)); } else if (Synch.Equals("LinkOper")) { sqlOper = new U8.Interface.Bus.Event.SyncAdapter.Biz.LinkOper(oraLinkName, ufConnStr, ufTableName, ufPriKey, oracleTableName, oraclePriKey, l, lst); return(sqlOper.CreateDeleteString()); } else { sqlOper = new U8.Interface.Bus.Event.SyncAdapter.Biz.OracleOper(oraConnStr, oracleTableName, oraclePriKey, l, lst); return(sqlOper.CreateDeleteString()); } }
public override StringBuilder CreateDeleteString() { if (Synch.Equals("UFOper")) { string sql = "DELETE FROM " + oracleTableName + " WHERE " + oracleTableName + ".MoCode in( select h.mocode from mom_orderdetail d with(nolock) inner join mom_order h with(nolock) on h.moid = d.moid where d.moid =" + Convert.ToString(_moid) + " and d.modid =" + Convert.ToString(_modid) + ") "; return(new StringBuilder(sql)); } else if (Synch.Equals("LinkOper")) { sqlOper = new LinkOper(oraLinkName, ufConnStr, ufTableName, ufPriKey, oracleTableName, oraclePriKey, l, lst); return(sqlOper.CreateDeleteString()); } else { sqlOper = new OracleOper(oraConnStr, oracleTableName, oraclePriKey, l, lst); return(sqlOper.CreateDeleteString()); } }
public override StringBuilder CreateDeleteString() { if (Synch.Equals("UFOper")) { string sql = " DELETE FROM " + oracleTableName + " WHERE " + oracleTableName + ".dhcode ='" + _ccode + "' "; return(new StringBuilder(sql)); } else if (Synch.Equals("LinkOper")) { sqlOper = new U8.Interface.Bus.Event.SyncAdapter.Biz.LinkOper(oraLinkName, ufConnStr, ufTableName, ufPriKey, oracleTableName, oraclePriKey, l, lst); return(sqlOper.CreateDeleteString()); } else { sqlOper = new U8.Interface.Bus.Event.SyncAdapter.Biz.OracleOper(oraConnStr, oracleTableName, oraclePriKey, l, lst); return(sqlOper.CreateDeleteString()); } }
public override StringBuilder CreateDeleteString() { if (Synch.Equals("UFOper")) { string sql = " DELETE FROM " + oracleTableName + " WHERE " + oracleTableName + ".cAVDID in( select autoid from " + ufTableName + " sb with(nolock) INNER JOIN AssemVouch sh WITH(NOLOCK) ON sh.id = sb.id where sh.cVouchType = '13' AND sh.cAVCode ='" + _cAVCode + "') "; return(new StringBuilder(sql)); } else if (Synch.Equals("LinkOper")) { sqlOper = new U8.Interface.Bus.Event.SyncAdapter.Biz.LinkOper(oraLinkName, ufConnStr, ufTableName, ufPriKey, oracleTableName, oraclePriKey, l, lst); return(sqlOper.CreateDeleteString()); } else { sqlOper = new U8.Interface.Bus.Event.SyncAdapter.Biz.OracleOper(oraConnStr, oracleTableName, oraclePriKey, l, lst); return(sqlOper.CreateDeleteString()); } }
public override StringBuilder CreateDeleteString() { if (Synch.Equals("UFOper")) { string sql = "DELETE FROM " + oracleTableName + " WHERE " + oraclePriKey + "=" + Convert.ToString(_PRoutingId) + " "; return(new StringBuilder(sql)); } else if (Synch.Equals("LinkOper")) { sqlOper = new LinkOper(oraLinkName, ufConnStr, ufTableName, ufPriKey, oracleTableName, oraclePriKey, l, lst); return(sqlOper.CreateDeleteString()); } else { sqlOper = new OracleOper(oraConnStr, oracleTableName, oraclePriKey, l, lst); return(sqlOper.CreateDeleteString()); } }
override public void Run() { try { long pos = 0, nextpos; while (!zap) { lock (mutex) { nextpos = MoleculeStream.FindNextPosition(istr, pos); } if (nextpos < 0) break; filepos.Add(pos); pos = nextpos; // inform the main window that is has work to do! //UPGRADE_ISSUE: Method 'java.awt.EventQueue.invokeLater' was not converted. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1000_javaawtEventQueue'" //EventQueue.invokeLater(new AnonymousClassRunnable(this)); Synch synchDelegate = new Synch(wnd.Synchronize); synchDelegate(filepos.Count); } } catch (System.IO.IOException e) { //UPGRADE_TODO: The equivalent in .NET for method 'java.lang.Throwable.toString' may return a different value. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1043'" SupportClass.OptionPaneSupport.ShowMessageDialog(null, e.ToString(), "Catalog Load Failed", (int) System.Windows.Forms.MessageBoxIcon.Error); SupportClass.WriteStackTrace(e, Console.Error); } }